PS:在运行Spark应用程序的时候,driver会提供一个webUI给出应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口,也就是 说,Spark应用程序运行完后,将无法查看应用程序的历史记录。Spark history server就是为了应对这种情况而产生的,通过配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览。
配置Job History Server
1.启动HDFS并创建directory目录
#start-dfs.sh
#hdfs dfs -mkdir /directory
2.进入到spark安装目录conf目录下
#cd /opt/software/spark-2.2.0-bin-hadoop2.7/conf
3.将spark-default.conf.template复制为spark-default.conf
#mv spark-defaults.conf.template spark-defaults.conf
#vi spark-defaults.conf 在文件的末尾添加
spark.eventLog.enabled true 开启日志
spark.eventLog.dir hdfs://hadoop01:8020/directory 存储路径
spark.eventLog.compress true 是否压缩
参数描述:
spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下
spark.eventLog.compress 这个参数设置history-server产生的日志文件是否使用压缩,true为使用,false为不使用。这个参数务可以成压缩哦,不然日志文件岁时间积累会过
4.修改spark-env.sh文件,添加如下配置
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=10 -Dspark.history.fs.logDirectory=hdfs://hadoop01:8020/directory"
- spark.history.ui.port=4000 调整WEBUI访问的端口号为4000
- spark.history.retainedApplications=10 指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。
- spark.history.fs.logDirectory=hdfs://hadoop01:8020/directory 配置了该属性后,在start-history-server.sh时就无需再显式的指定路径,Spark History Server页面只展示该指定路径下的信息
5.配置完成后分发文件到相应节点
scp -r ./spark-env.sh root@hadoop02:$PWD
scp -r ./spark-defaults.conf root@hadoop02:$PWD
ps:最好不要是用IE内核的浏览器不然效果是显示不出来的,启动的时候是
start-all.sh start-history-server.sh