?/p>
Apache Spark
进行大数据处?/p>
—?/p>
第一部分:入门介
?/p>
什么是
Spark
Apache Spark
是一个围绕速度、易用性和复杂分析构建的大数据处理框架。最初在
2009
年由加州大学伯克利分校的
AMPLab
开发,并于
2010
年成?/p>
Apache
的开源项目之一?/p>
?/p>
Hadoop
?/p>
Storm
等其他大数据?/p>
MapReduce
技术相比,
Spark
有如下优势?/p>
首先?/p>
Spark
为我们提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据?/p>
图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求?/p>
Spark
可以?/p>
Hadoop
集群中的应用在内存中的运行速度提升
100
倍,
甚至能够将应用在?/p>
盘上的运行速度提升
10
倍?/p>
Spark
让开发者可以快速的?/p>
Java
?/p>
Scala
?/p>
Python
编写程序?/p>
它本身自带了一个超?/p>
80
个高阶操作符集合。而且还可以用它在
shell
中以交互式地查询数据?/p>
除了
Map
?/p>
Reduce
操作之外,它还支?/p>
SQL
查询,流数据,机器学习和图表数据处理?/p>
开发者可以在一个数据管道用例中单独使用某一能力或者将这些能力结合在一起使用?/p>
在这?/p>
Apache Spark
文章系列的第一部分中,我们将了解到什么是
Spark
,它与典型的
MapReduce
解决方案的比较以及它如何为大数据处理提供了一套完整的工具?/p>
Hadoop
?/p>
Spark
Hadoop
这项大数据处理技术大概已有十年历史,
而且被看做是首选的大数据集合处理的?/p>
决方案?/p>
MapReduce
是一路计算的优秀解决方案,不过对于需要多路计算和算法的用例来
说,并非十分高效。数据处理流程中的每一步都需要一?/p>
Map
阶段和一?/p>
Reduce
阶段?/p>
而且如果要利用这一解决方案,需要将所有用例都转换?/p>
MapReduce
模式?/p>
在下一步开始之前,
上一步的作业输出数据必须要存储到分布式文件系统中?/p>
因此?/p>
复制?/p>
磁盘存储会导致这种方式速度变慢?/p>
另外
Hadoop
解决方案中通常会包含难以安装和管理?/p>
集群。而且为了处理不同的大数据用例,还需要集成多种不同的工具(如用于机器学习?/p>
Mahout
和流数据处理?/p>
Storm
)?/p>
如果想要完成比较复杂的工作,
就必须将一系列?/p>
MapReduce
作业串联起来然后顺序执行
这些作业?/p>
每一个作业都是高时延的,
而且只有在前一个作业完成之后下一个作业才能开?/p>
启动?/p>
?/p>
Spark
则允许程序开发者使用有向无环图?/p>
DAG
)开发复杂的多步数据管道。而且还支
持跨有向无环图的内存数据共享,以便不同的作业可以共同处理同一个数据?/p>