Spark History Server安装(1.2.1) 2015-03-06 15:00

介绍

在运行Spark应用程序的时候,driver会提供一个webUI给出应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口,也就是说,Spark应用程序运行完后,将无法查看应用程序的历史记录。Spark history server就是为了应对这种情况而产生的,通过配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览。

配置

  • 准备

在HDFS中创建一个目录,用于保存Spark运行日志信息。Spark History Server从此目录中读取日志信息。

1
hdfs dfs -mkdir /Spark

spark-env.sh

1
2
3
4
5
export SPARK_DAEMON_MEMORY=128m
export SPARK_PUBLIC_DNS=q.cheyo.net
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://ctrl:9000/Spark \
-Dspark.history.fs.updateInterval=10 \
-Dspark.history.retainedApplications=20"

spark-defaults.conf

1
2
3
4
spark.eventLog.enabled              true
spark.eventLog.dir                  hdfs://ctrl:9000/SparkHistory
spark.eventLog.compress             true
spark.yarn.historyServer.address    ctrl:18080
  • spark.yarn.historyServer.address : Spark history server的地址(不加http://).这个地址会在Spark应用程序完成后提交给YARN RM,然后可以在RM UI上点击链接跳转到history server UI上.

启动与停止

1
2
sbin/start-history-server.sh
sbin/stop-history-server.sh

全部配置项

spark-env.sh(环境变量)

Monitoring and Instrumentation中的表格1和表格2。

spark-defaults.conf

  • spark.eventLog.enabled : 是否记录Spark事件,用于应用程序在完成后重构webUI。
  • spark.eventLog.dir : 如果spark.eventLog.enabled为 true,该属性为记录spark事件的根目录。在此根目录中,Spark为每个应用程序创建分目录,并将应用程序的事件记录到在此目录中。用户可以将此属性设置为HDFS目录,以便history server读取历史记录文件。
  • spark.yarn.historyServer.address : Spark history server的地址(不加http://).这个地址会在Spark应用程序完成后提交给YARN RM,然后可以在RM UI上点击链接跳转到history server UI上.

其他

  • 疑问:spark.history.fs.logDirectory和spark.eventLog.dir指定的目录有什么区别?
  • 答案:spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下; spark.history.fs.logDirectory:Spark History Server页面只展示该指定路径下的信息;即一个是写日志的目录,一个是读日志的目录。 比如:spark.eventLog.dir刚开始时指定的是hdfs://hadoop000:8020/directory,而后修改成hdfs://hadoop000:8020/directory2 那么spark.history.fs.logDirectory如果指定的是hdfs://hadoop000:8020/directory,就只能显旧的日志,新产生的日志无法读取;所以一般情况下,两个参数设置的值应该相同。
Tags: #Spark    Post on Spark