文章目录
为什么需要HistoryServer
在Spark安装成功,通过spark-submit工具提交任务后,只要在Spark应用程序运行期间,可以通过WebUI控制台页面来查看具体的运行细节,在浏览器中通过地址:http://:4040即可查看当前的运行状态。但是一旦应用程序运行结束,该Web界面也就失效了,无法继续查看监控集群信息。无法回顾刚刚运行的程序细节,进而定向做出优化,肯定极为不便。这时候就需要为集群配置Spark History Server了。
HistoryServer简介
Spark History Server可以很好地解决上面的问题。
通过配置,我们可以在Spark应用程序运行完成后,将应用程序的运行信息写入指定目录,而Spark History Server可以将这些信息装在并以Web形式供用户浏览。
HistoryServer配置(只需要在要运行historyserver的节点上配置即可)
下面以spark on yarn模式为例进行配置说明
1 新建保存spark events的目录
采用如下命令创建用于保存spark events的目录
hadoop fs -mkdir /tmp/spark-logs
hadoop fs -chmod -R 777 /tmp/spark-logs
2 配置spark-defaults.conf
在${SPARK_HOME}/conf目录下的spark-defaults.conf配置文件中新增如下配置:
# Configuring spark history server
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoopSvr1:8020/tmp/spark-logs
spark.yarn.historyServer.address hadoopSvr1:18080
3 配置spark-env.sh
在${SPARK_HOME}/conf目录下的spark-env.sh配置文件中新增如下配置:
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://hadoopSvr1:8020/tmp/spark-logs -Dspark.history.fs.cleaner.enabled=true"
相关配置参数可参考:
http://spark.apache.org/docs/latest/monitoring.html
http://spark.apache.org/docs/latest/running-on-yarn.html
启动HistoryServer
启动Spark的start-all.sh后,再运行start-history-server.sh文件即可启动历史服务。
start-history-server.sh
应用程序运行时的4040和历史记录的18080WebUI配合使用,可以让我们在运行Spark应用的时候随时监测程序运行状态,并作相应的优化和调节,效果显著。