![Spark分布式处理实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/345/48078345/b_48078345.jpg)
【任务实施】
1.Spark独立集群模式安装
在本书所介绍的案例使用了由3台服务器节点构建的集群。集群的主机名、IP地址、服务器节点角色如表1-1所示。
表1-1 集群规划
![](https://epubservercos.yuewen.com/E255DC/27551410304982506/epubprivate/OEBPS/Images/figer01.jpg?sign=1739345034-KVIDtWPicHeSgfTFaWYjclXSPwceK9XU-0-7e61e140787cd9ef6c5c044006218483)
在本地模式安装并正常运行的前提下,可以通过修改配置文件的方式和复制的方式将单个节点的安装扩展到多个节点,安装时按照以下操作步骤进行。
(1)查看配置文件。首先进入安装目录的conf目录。这个文件夹包含了配置文件,文件名称扩展为.template,可以直接去掉文件扩展名进行修改;也可以保留原始文件,复制一个新的文件,然后再去掉扩展名.template,在新文件中修改内容。
[hadoop@hadoop1 ~]$ cd /opt/module/spark/conf
[hadoop@hadoop1 conf]$ ls
fairscheduler.xml.template log4j.properties.template metrics.properties.template slaves.template
spark-defaults.conf.template spark-env.sh.template
(2)基于slaves.template文件复制一个新的文件,然后去掉扩展名.template,文件名称变为slaves。
[hadoop@hadoop1 conf]$ cp slaves.template slaves
(3)编辑slaves文件,在slaves文件中添加3台服务器的主机名,如图1-7所示。
[hadoop@hadoop1 conf]$ vi slaves
![](https://epubservercos.yuewen.com/E255DC/27551410304982506/epubprivate/OEBPS/Images/TX921.jpg?sign=1739345034-zWjEwgOudldgucrJOddlPsLCqLR3Nqdo-0-f646cc84df2c389838c57c31c4c22c74)
图1-7 设置Slave节点
(4)基于spark-env.sh.template文件复制一个新的文件,然后去掉扩展名.template,文件名称变为spark-env.sh。
[hadoop@hadoop1 conf]$ cp spark-env.sh.template spark-env.sh
(5)编辑spark-env.sh文件,设置Master节点,如图1-8所示。
[hadoop@hadoop1 conf]$ vi spark-env.sh
![](https://epubservercos.yuewen.com/E255DC/27551410304982506/epubprivate/OEBPS/Images/TX929.jpg?sign=1739345034-5BpTuDpCSkesPbYc2uxwMYaWbqgV0Ub4-0-5b45e402ca028dfae815eb9f07e3cc06)
图1-8 设置Master节点
(6)设置JAVA_HOME,指向JDK安装的目录。
[hadoop@hadoop1 conf]$ vi /opt/module/spark/sbin/spark-config.sh
# JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
(7)在集群的其他服务器节点hadoop2和hadoop3中进行相同的安装,或者通过从已经安装好的节点远程复制文件的方式进行安装。
(8)启动Spark集群的命令是安装目录的sbin下面的start-all.sh文件。因为这个文件名和Hadoop安装目录下的sbin同名,为了能够保证在任意路径下执行启动脚本而不冲突,可以将启动脚本复制成另一个文件start-spark.sh。同样,停止集群的脚本stop-all.sh也存在这种情况,可以将其复制成一个新的文件stop-spark.sh。
[hadoop@hadoop1 conf]$ cp /opt/module/spark/sbin/start-all.sh /opt/module/spark/sbin/start-spark.sh
[hadoop@hadoop1 conf]$ cp /opt/module/spark/sbin/stop-all.sh /opt/module/spark/sbin/stop-spark.sh
(9)启动和停止Spark集群,如图1-9所示。
[hadoop@hadoop1 conf]$ start-spark.sh
[hadoop@hadoop1 conf]$ stop-spark.sh
(10)通过Web UI查看集群。可以通过主机名或者IP地址进行访问。默认端口号为8080,可以在浏览器中访问http://hadoop1:8080,如图1-10所示。
![](https://epubservercos.yuewen.com/E255DC/27551410304982506/epubprivate/OEBPS/Images/TX937.jpg?sign=1739345034-nyq77CuGjQdSSSqgptqxtExKKqnkBam8-0-dd16bc0598c6137f1076d8fdb51a7d6b)
图1-9 启动和停止Spark集群
![](https://epubservercos.yuewen.com/E255DC/27551410304982506/epubprivate/OEBPS/Images/TX946.jpg?sign=1739345034-SVYNtlQdntLP1ADwSc03gikvb7Jxeer4-0-d01fc615b9c5bfe58d614ddb1186bfe1)
图1-10 通过Web UI查看集群
2.Spark历史服务配置
默认情况下,由于Spark提交的任务不会被记录到日志中,也就是说,向Spark集群提交的任务信息并不会保留,因此在企业级应用中一般会开启Spark历史服务。配置Spark历史服务的主要步骤如下。
(1)启动Hadoop。在HDFS上创建Spark的事件日志目录,目录名称可以任意设置。使用如下命令在HDFS上创建spark-eventlog目录。
[hadoop@hadoop1 ~]$ hdfs dfs -mkdir /spark-eventlog
(2)修改Spark历史日志,如图1-11所示。
[hadoop@hadoop1 ~]$ vi /opt/module/spark/conf/spark-defaults.conf
![](https://epubservercos.yuewen.com/E255DC/27551410304982506/epubprivate/OEBPS/Images/TX954.jpg?sign=1739345034-toBqP1UWygYLl8KTASxBhwINZKQJ36ct-0-33f089323066d45e7b5591a21171abc4)
图1-11 Spark历史日志设置
(3)修改spark-env.sh文件。Spark History的参数如表1-2所示。修改后的结果如图1-12所示。修改完成后保存文件设置。
[hadoop@hadoop1 ~]$ vi /opt/module/spark/conf/spark-env.sh
表1-2 Spark History的参数
![](https://epubservercos.yuewen.com/E255DC/27551410304982506/epubprivate/OEBPS/Images/figer02.jpg?sign=1739345034-HSqVCA7iTiC94OeEm7m8PpI8IRNgkswN-0-54145d6ccab75574442055c737dcb9a5)
![](https://epubservercos.yuewen.com/E255DC/27551410304982506/epubprivate/OEBPS/Images/TX992.jpg?sign=1739345034-FrXt2rWeUeT7w8oXBEQIY69JIZXBLfU6-0-015b025d239a74b3c936afc3876df105)
图1-12 Spark历史日志参数设置