自己动手做大数据系统(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.9 Spark

对于实时数据的采集处理,大数据系统中有个比较优秀的工具——Spark。它是一个基于内存的分布式计算框架实现。

Spark生态系统中包含了Spark Core、Spark SQL、Spark Streaming、MLlib和GraphX等组件。其中,Spark Core提供内存计算框架,Spark Streaming提供实时处理应用,Spark SQL提供即席查询,再加上MLlib的机器学习和GraphX的图处理,它们能无缝地集成并提供Spark一站式的大数据解决平台。

Spark Streaming是Spark提供的对实时数据进行流计算的组件,其提供了用来操作数据流的API(Application Programming Interface),并且与Spark Core中的RDD(Resilient Distributed DataSets,弹性的分布式数据集)API高度对应。Spark Streaming支持与Spark Core同级别的容错性、吞吐量和伸缩性。Spark流式计算架构如图2-11所示。

图2-11 Spark流式计算架构图

从图2-11的架构图中可以看出,Spark Streaming将持续不断输入的数据流基于时间转换成多个批次分片。

企业选择Spark作为流处理工具,一般有以下原因:

• 由于Spark的全栈架构支持,企业已经应用Spark SQL、Spark ML或PySpark组件,因此,为了开发平台框架的一致性,基于Spark Streaming的实时数据组件也应该快速地应用到开发中。

• Spark Streaming的优良实时处理设计,可以满足企业实时数据计算处理的业务时效。

2.9.1 Spark安装文件的准备

具体准备如下。

• Spark安装包:可以到Apache官网下载spark-1.5.1-bin-hadoop2.6.tgz。

• 其所依赖的Scala可以使用2.2节的内容。

2.9.2 Spark的安装及配置

解压缩并重命名所下载的Scala及Spark安装包:

解压缩并重命名Spark安装包:

添加所对应的系统环境变量:

设置Spark配置文件:

2.9.3 Spark运行验证

启动Spark并验证相关服务:

利用jps命令查看Spark的相关服务是否存在。