运行中的spark应用,可以使用对应的4040端口,网页查看相应的工作状态信息,RDD的血缘之类的
而对于配置好的spark history server来说,可以查看已经结束的spark任务的界面
在页面上,还可以看到本地(driver)运行时的信息,比如java的路径、版本,主机名、端口号等。
在客户端,或者说,在运行spark程序的时候,只需要配置启用log并放在spark-history对应的目录,就可以了,如下:
spark.eventLog.enabled=true
spark.eventLog.dir=hdfs://centos72/user/spark/spark2ApplicationHistory
spark.yarn.historyServer.address=http://centos72:18089
服务端配置,在spark-defaults.conf中
spark.history.ui.port=18089
spark.history.fs.logDirectory=hdfs://centos72/user/spark/spark2ApplicationHistory
spark.ui.filters=org.apache.spark.deploy.yarn.YarnProxyRedirectFilter
以上两个,默认是18080和本地的/tmp/spark-events
为了YARN能用,程序要能写入,就要配置成hdfs的路径
启动spark history server:
$SPARK_HOME/sbin/start-history-server.sh
运行中的任务也可以在这个spark history server中显示,在界面中点击incomplete applications
配置参考官网说明
还希望从YARN点AM链接到这个页面
按默认它会打开localhost:4040,网络原因经常显示不出来
在应用里修改
spark.ui.enabled=false,就不再使用默认的ApplicationMaster的4040页面,但会显示YARN默认的AM页面
如果要链接到spark history server进行tracking显示,要配置:
spark.yarn.historyServer.allowTracking=true
小结如下
.config('spark.eventLog.dir','hdfs://centos72/user/spark/spark2ApplicationHistory')\
.config('spark.yarn.historyServer.address','http://centos72:18089')\
.config('spark.eventLog.enabled','true')\
.config('spark.yarn.historyServer.allowTracking','true')\
.config('spark.ui.enabled','false')\