1、每一个SparkContext都会启动一个网页UI,这个网的UI上包含诸如stages/tasks/RDD/executor/配置环境/配置参数等一些许许多多的信息,它默认的地址是http://<driver_node>:4040,当我们在一个机器上运行了多个SparkContext的时候,除了第一个SparkContext,其余的SparkContext的默认端口就变为4041、4042。。。。
2、但是呢,当我们任务完成或者任务异常终止之后,这个网页的UI就不可用了,如何在任务结束后仍然能看到我们的任务等相关信息呢,有两种方式:
A.在任务启动前将spark.eventLog.enabled属性设置为true,或在启动任务时将park.eventLog.enabled的值true传入。
B.这时候就轮到我们的history-server粉墨登场啦。
3、启用history-server的前置配置:
vi spark-defaults.conf 添加
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop001:9000/spark-logs
####hdfs上的这个“/spark-logs”目录要创建哦
vi spark-env.sh,添加
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop001:9000/spark-logs"
###关于OPTS的东西都要以-D形式表示哦
spark-env.sh 参数格式 SPARK_XXX_XXX=.........