在大数据处理中,Spark是一个强大的分布式计算框架。但当Spark服务重启后,之前的运行记录就会消失,给我们排查问题和分析任务执行情况带来不便。这时,配置Spark历史服务器就显得尤为重要,它能帮助我们保存和查看历史任务记录。下面就来详细介绍如何配置Spark历史服务器。
一、准备工作
在开始配置之前,需要确保HDFS服务处于开启状态,因为我们会把历史任务的记录保存在HDFS集群文件中。
二、具体配置步骤
1. 停止Spark集群
进入`/opt/module/spark - standalone/sbin`目录,运行命令`./stop - all.sh`,停止当前正在运行的Spark集群。这一步是为了在后续修改配置文件时,避免出现冲突。
2. 修改spark - default.conf文件
找到`/opt/module/spark - standalone/conf/spark - default.conf.template`文件,将其名称修改为`spark - default.conf` 。
然后在文件中补充以下两个设置: ``` spark.eventLog.enabled true spark.eventLog.dir hdfs://hadoop100:8020/directory ```
这里`spark.eventLog.enabled`设置为`true`,表示启用事件日志记录功能;`spark.eventLog.dir`指定了历史任务相关信息的保存目录,是HDFS上的`/directory`文件夹 。
需要注意的是,要确保这个目录存在,并且HDFS服务正常运行。
3. 启动HDFS服务并创建目录
运行`start - dfs.sh`启动Hadoop的HDFS服务。
可以通过命令行(如`hdfs dfs - mkdir - p hdfs://hadoop100:8020/directory` )或者在`hadoop100:9870`的Web页面操作来创建`directory`目录。
4. 修改spark - env.sh文件
在`spark - env.sh`文件中添加以下配置: ``` export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop100:8020/directory" ``` 这一步是为历史服务器指定日志存储目录,使其能够正确读取和展示任务历史记录。
5. 分发配置文件
使用`xsync /opt/module/spark - standalone/conf/`命令,将修改后的配置文件分发到集群中的其他机器上,保证整个集群配置的一致性。
6. 重新启动Spark集群
在`/opt/module/spark - standalone/sbin`目录下,运行`./start - all.sh`命令,重新启动Spark集群。
7. 启动历史服务器
在相同目录下,运行`./start - history - server.sh`命令,启动Spark历史服务器。启动后,可以检查`spark - standalone/logs`目录下的日志,查看历史服务器的启动情况是否正常。
8. 查看效果
此时,通过浏览器访问`hadoop100:18080`端口,正常情况下应该暂时看不到任务记录,因为还没有提交新的任务。
9. 验证配置
重新提交一个新的Spark任务,然后再次回到`hadoop100:18080`端口对应的页面,这时就应该能够看到刚刚提交的任务记录了。
三、总结
通过以上一系列步骤,我们成功配置了Spark历史服务器。这样在后续的工作中,无论是排查任务执行失败的原因,还是分析任务的运行效率,都可以方便地通过历史服务器查看相关记录,大大提高了工作效率,也让我们对Spark任务的管理更加得心应手。