Apache Spark加快大数据决策行业资讯

2015-06-26    来源:机房360    编辑:litao984lt
Spark,是来自Apache的开源集群计算框架,承诺补充Hadoop批处理。还有更多的大数据到Hadoop,但趋势很难想象没有它。分布式文件系统(HDFS)是帮助企业存储非结构化数据的大量的速度,

  关于大数据,不仅仅只有Hadoop。但是,如果没有Hadoop,大数据的发展趋势将是很难想象的。其分布式文件系统(HDFS)能够帮助企业在商用硬件上以从前难以想象的成本高速存储容量庞大的非结构化数据。

  但其也有自身的缺点。MapReduce编程模型在HDFS中访问和分析数据基本很难,而且其批处理的设计也很难。如果应用程序能够等待相关答案出来之后再解析问题固然不错,但时效性是相当关键的,MapReduce会妨碍时效性。

  调研公司451 Research的数据平台和分析研究总监马特·阿斯莱特说:Hadoop为普通企业带来了存储和处理数据的机会,而这些数据的存储和处理曾经是被这些企业所忽视的。诸如欺诈检测这样的应用程序、在线广告分析和电子商务推荐引擎需要更加快速的从这些数据信息中提炼出有价值的洞察结论。

  “批处理固然很好,但其如果需要花费一个或两个小时,那么其对于这些应用程序而言就不是什么好事了。”他说。

  而Spark就是能够克服这其中的一些问题的技术,这是一款来自Apache软件基金会的开源集群计算框架。“借助Spark和内存处理,企业可以将响应缩减到以秒为计,允许实时的响应应用程序说。”阿斯莱特说。

  业界对于Spark兴起巨大兴趣

  “业界前沿对于Spark的探讨已经有一段时间了,但现在,企业用户开始对其产生了巨大的兴趣。部分原因是因为Hadoop供应商背后的大力推广,承诺实现Hadoop的批处理,使更多的内存能够进行实时应用程序的响应处理。供应商Cloudera公司就是Hadoop的早期推广者之一,他们将其看作是MapReduce的长期潜在替代者。”

  Spark诞生于加州大学伯克利分校AMPLab的一个研究项目。在2009年,博士生Matei Zaharia开发了该代码,并在2010年将其开源。到2013年,该项目被捐赠给Apache软件基金会,并移交了其许可证到Apache 2.0。

  2013年,AMPLab记录了在某些应用中Spark比MapReduce运行速度快100倍。2014年2月,Spark成了一个Apache顶级项目。

  Spark是作为伯克利数据分析栈的一部分开发的,能够通过Yarn资源管理器访问HDFS数据。除了HDFS,其也可以用在文件系统上。

  但是,对于企业用户对于Spark的采用也需要格外的谨慎小心,毕竟,其是开源的。

  高性能计算顾问公司OCF大数据部门负责人克里斯·布朗表示说:“大数据仍然是一个新的概念,我们目前还没有遇到过任何一家客户要求我们利用Spark做任何事。”

  “这里存在几个方面的问题。首先,Hadoop仍然是不成熟的:目前。其并没有数以百万计的客户,其客户量仅有几千。其次,开源项目的发展太过迅速,而企业所需要的是稳定的生产环境,因此企业用户不会以同样的速度进行改变。”

  尽管如此,Spark正在努力寻求成为一些客户的专有软件。Postcodeanywhere是一家流行的电子商务和零售网站地址数据供应商,该公司在其内部使用Spark以帮助了解和预测其平台上的客户行为,使公司能够改善服务已经一年多了。

  Spark的速度和灵活性使其成为理想的快速,迭代过程,如机器学习, Postcodeanywhere公司就是充分利用了其这一特性(见下文案例分析)。

  Postcodeanywhere公司首席技术官杰米·特纳说,该公司的主要服务是建立在微软.Net框架基础上的,并结合了开源代码。

  “这是我们第一次涉足任何开放源代码。”他说。“您会在代码库看到很多波动。您会看到bug进来,然后在不同的分布之间消失。

  “我们知道,对于我们想要的,SQL系统从许可费用上、技术上、规模上来说,不会是最经济的。但是,开源技术没有很好的记载,是无据可查的。您企业在许可费用所节省的费用,您需要花费人力成本去试图理解。”

  机器学习能力

  Postcodeanywhere公司目前正在开发其公司内部采用Spark的机器学习能力作为一种服务,以便对其客户有更好地了解,并能够预测客户的行为。

  虽然Spark在内存的性能优势是没有争议的,但其并不是在所有的应用程序上运行都会快100倍。OCF同时在HDFS和Spark内存中上传了赫尔曼·黑塞的小说《悉达多(Siddartha)》,以比较二者在上传这份700MB文件的速度。Hadoop在686秒内完成任务;而Spark则只需53秒,比前者快了13倍。

  但Spark并不仅仅是在内存中能够提供很好的性能优势。基于磁盘的分析也明显提高。在2014秋天,Spark最初的开发人员所成立的一家公司Databricks在磁盘上打破了存储100TB数据的世界纪录。

  Spark使用206亚马逊弹性计算云机器在23分钟内完成任务。之前的72分钟的纪录是由Hadoop MapReduce使用2100台机器完成的。Spark仅使用了前者十分之一的机器,速度却快了三倍。

  这对于数据科学家们在业务中的工作方式产生了影响。Spark不仅能使应用程序在内存中以更快的速度进行分析,还可以从基于磁盘的数据将数据科学家查询数据和构建算法转化为生产力。

  Cloudera的数据科学主任肖恩·欧文表示说:“这使得得数据科学家们能够更容易的构建业务系统。Spark可以帮助数据科学家们建立完整的数据转换和编写代码,来构建一个大型的数据模型。这比我们一年多前的基板要好得多。”

  大数据咨询顾问公司Mu Sigma的创新发展部门副总裁Zubin Dowlaty说,虽然IT部门可以使用Spark和HDFS利用新的编程工具在新的数据集上工作,但最难改变的是心态。

  “他们需要动摇自己对于这些新工具所提供的灵活敏捷性的推崇。”他说。 “他们需要撼动整个企业,朝大的方向考虑。计算现在真的可以规模化,所以您可以做更多的事情。但领导力并不是来自CTO,而是来自CMO或其他CXO级别的高级管理人员。”

  在支持内存分析和机器学习的同时,大幅提升数据科学的生产力,Spark承诺以低价协助企业IT部门解决大数据问题。但问题在于:企业IT部门是否能够帮助他们业务部门的同事了解这些新的应用程序和方法对于科学数据的价值?

  案例分析:Postcodeanywhere准备推出基于Spark的机器学习工具

  地址验证服务供应商Postcodeanywhere公司知道,他们在其商业模式的核心存在一些问题。从本质上讲,该服务使用免费提供的数据,帮助电子商务网站识别用户的地理位置,并帮助自动完成地址定位。

  该公司首席技术官杰米·特纳说:“我们所卖的是别人的数据,这在理论上可能成为一种商品。而我们的区别就在于我们所提供的技术服务的质量和高可用性。”

  公司成立15年来,Postcodeanywhere目前还在尝试新的思路,以改善其服务。其中之一便是预测客户何时将会有服务需求,并采取先发制人的行动。

  该公司内部开发的系统是用Scala编写的,这是一门类似于Java的语言,并利用Spark使用NoSQL数据库Cassandra和Elasticsearch查询机器学习,所有都运行在Windows系统上。其前端是微软的.NET框架上用C #编写的。

  Postcodeanywhere试图捕获尽可能多的关于客户、以及他们的服务体验方面的信息。这些信息包括客户的帐户信息,使用服务过程中的任何变化、错误,使用服务过程中所涉及到的其他数据,如IP地址,所显示的地点,以及移动网络运营商,网络连接状况和客户操作系统等等信息。

  通过不断地分析这些数据,机器学习模型能够计算出哪个因素,或因素的组合,可能导致客户的负面服务经验。

  “通过获取这些数据,企业就可以开始找出影响客户体验的最重要的因素是什么,而再是根据自己的想法在早期进行决策。”特纳说。

  预测坏的体验

  通过建立这些模型来预测某位客户何时可能有坏的服务体验,让Postcodeanywhere公司能够采取积极的措施尽量改善现状。这可能意味着给客户以新的服务内容,在一个特定的页面设置新的产品,降低价格,或主动给客户电话。

  “这带来了巨大的好处,使我们真正做到了服务的差异化。”特纳说。“这给了我们一个强烈预测未来市场趋势,并进行决策的优势。目前一切都很顺利,当前的问题则是防范可能出现的问题。”

  Postcodeanywhere公司目前正在开发系统作为商业产品,称为Triggar,旨在帮助企业用户能够更好地了解和预测他们的客户体验。这可以协助进行一些防范,就像该公司目前所使用的,甚至在某些程度上可以进行适当有针对性的进行追加销售。

  如果没有Spark,这种做法是不切实际的,特纳说。“这为我们提供了独特的规模和速度。其他的方法要慢得多,或者花费的成本更多。”

  该统运行于戴尔商业化硬件机架上,目前每隔几天处理1 TB的数据。

  特纳补充说:“这不是虚幻的,但也不是真正的大数据。我们正在寻找像Cassandra、Elasticsearch和Spark这样的更大的引擎,使得其可以扩展到PB级,因为一旦项目正在得到长足的进展,这会很快发生。”

1
3