点评:大数据处理下的星火燎原

Apache Spark为Hadoop集群带来了高速的内存分析,可以在几分钟而不是几小时内处理大规模数据集

Apache Spark于2009年在加州大学伯克利分校的AMPLab作为对大型数据集执行内存分析的一种方法。那时,Hadoop MapReduce专注于大规模的数据管道,在本质上不是迭代的。2009年在MapReduce上构建分析模型是一个非常缓慢的过程,所以AMPLab设计Spark来帮助开发人员执行对大数据集的交互分析,并运行迭代的工作负载,比如机器学习算法,在RAM中重复处理相同的数据集。

Spark不会取代Hadoop。相反,它为高度迭代的工作负载提供了另一种处理引擎。通过避免对磁盘的写操作,Spark作业的运行速度通常比Hadoop MapReduce快很多个数量级。通过“生活”在Hadoop集群中,Spark使用Hadoop数据层(HDFS,HBase,读取原始数据并存储最终结果。

火花应用程序的编写

火花,写在Scala,为数据处理提供了统一的抽象层,使其成为开发数据应用程序的良好环境。Spark提供了Scala、Java和Python语言绑定的选择,这些语言绑定在很大程度上是等价的,除了只有Scala实现可用的边缘。

Spark的一个很好的特性是能够从Scala或Python控制台交互地工作。这意味着您可以尝试代码并立即看到执行的结果。这对于调试(在调试中,您可以更改值并再次进行,而不需要经过编译步骤)和数据研究(在数据研究中,典型的过程包括检查-可视化-更新的紧密循环)都很方便。

Spark的核心数据结构是一个弹性分布式数据(RDD)集合。在Spark中,驱动程序被编写为一系列RDDs的转换,然后对其进行操作。转换,顾名思义,通过以某种方式更改现有的RDDs来创建新的RDDs,比如根据某些标准过滤数据。操作在RDDs本身上工作。操作可能是计算数据类型的实例数量或将RDDs保存到文件中。

继续阅读这篇文章,现在注册

工资调查:结果在