![自己动手做大数据系统(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/236/32375236/b_32375236.jpg)
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所示。
![](https://epubservercos.yuewen.com/EE9D0A/17493186606224406/epubprivate/OEBPS/Images/txt003_72.jpg?sign=1738883235-yY4R7tFuAWtHqqUOSmM6d0i8s7nqWSuA-0-354df61572d8afc661efbfb82bf9c40e)
图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安装包:
![](https://epubservercos.yuewen.com/EE9D0A/17493186606224406/epubprivate/OEBPS/Images/txt003_73.jpg?sign=1738883235-K8SnVQ4UylwPCqbwrfRDwvnBNAEoqhFf-0-89a6a01c2eb56f226a278582c1ba0311)
添加所对应的系统环境变量:
![](https://epubservercos.yuewen.com/EE9D0A/17493186606224406/epubprivate/OEBPS/Images/txt003_74.jpg?sign=1738883235-Gi2BaQNWCT7Ot3UOGBx5fF1mqARUkwaI-0-7428e998f555bd35ede3f1e101538eb7)
设置Spark配置文件:
![](https://epubservercos.yuewen.com/EE9D0A/17493186606224406/epubprivate/OEBPS/Images/txt003_75.jpg?sign=1738883235-G8ei3OkM6xAQfDnRK0RmZGTetW35V6mD-0-0f581d18c8ee5c09877893149b8ba785)
2.9.3 Spark运行验证
启动Spark并验证相关服务:
![](https://epubservercos.yuewen.com/EE9D0A/17493186606224406/epubprivate/OEBPS/Images/txt003_76.jpg?sign=1738883235-FaqdXOLdAK43GI7mHNTcQWk1wLMQ1Abo-0-f56864a5c9bb15765077ca74ac225205)
利用jps命令查看Spark的相关服务是否存在。