1、Spark History Server的作用
在运行Spark应用程序的时候,driver会提供一个webUI用于展现应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口。也就是说,这个服务是伴随Spark应用程序的运行周期的,也就是当应用程序运行完成后,将无法查看应用程序的历史记录。Spark History Server就是为了应对这种情况而产生的,通过配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览
伴随Spark应用程序而启动的web查看服务的默认端口号是4040,或者4041(如果当前端口被占用,比如4040被占用,那么Spark会抛一个异常,但是不影响应用继续运行,driver会使用这个已用的端口加1,以此类推)
2、配置&使用Spark History Server
(1)修改yarn-site.xml(需要重启所有NodeManager生效)
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
用命令查看日志
bin/yarn logs –applicationId application_xxxx_xxx(只能查看运行完之后的作业日志)
(2)修改yarn-site.xml(需要重启所有NodeManager生效)
<property> <name>yarn.log.server.url</name> <value>http://scbnode1:19888/jobhistory/logs</value> </property>
(3)修改conf/spark-default.conf(下面的目录/tmp/spark/events事先在HDFS创建好)
spark.yarn.historyServer.address=scbnode1:18080 spark.history.ui.port=18080 spark.eventLog.enabled=true spark.eventLog.dir=hdfs://scbnode1:9000/tmp/spark/events spark.history.fs.logDirectory=hdfs://scbnode1:9000/tmp/spark/events
(4)启动Spark History Server
sbin/start-history-server.sh
(5)Spark History Server地址
http://scbnode1:18080/