教你如何轻松配置Spark的历史日志服务器JobHistoryServer?

2021-01-27 10:52:19 浏览数 (1)

默认情况下,Spark程序运行完毕关闭窗口之后,就无法再查看运行记录的Web UI(4040)了,但通过 HistoryServer 可以提供一个服务, 通过读取日志文件, 使得我们可以在程序运行结束后, 依然能够查看运行过程。本篇博客,博主就为大家带来在Spark上配置JobHistoryServer的详细过程。


1.进入到spark安装目录下的conf文件夹 cd /export/servers/spark/conf

2.修改配置文件名称 vim spark-defaults.conf

代码语言:javascript复制
spark.eventLog.enabled true
spark.eventLog.dir hdfs://node01:8020/sparklog

注意:HDFS上的目录需要提前存在

hadoop fs -mkdir -p /sparklog

3.修改spark-env.sh文件 vim spark-env.sh

代码语言:javascript复制
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000
-Dspark.history.retainedApplications=3 
-Dspark.history.fs.logDirectory=hdfs://node01:8020/sparklog"

参数描述:

spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下;

spark.history.ui.port=4000 WEBUI访问的端口号为4000

spark.history.fs.logDirectory=hdfs://node01:8020/sparklog 配置了该属性后,在start-history-server.sh时就无需再显式的指定路径,Spark History Server页面只展示该指定路径下的信息

spark.history.retainedApplications=30指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

4.同步配置文件

这里可以用scp命令,也可以用xsync自定义的命令,关于如何使用xsync请参考<带你书写linux超实用的脚本——xcall(同步执行命令)与xsync(同步文件目录)>

xsync spark-defaults.conf xsync spark-env.sh

5.重启集群 /export/servers/spark/sbin/stop-all.sh /export/servers/spark/sbin/start-all.sh

6.在master上启动日志服务器 /export/servers/spark/sbin/start-history-server.sh

7.运行一个计算PI的实例程序

代码语言:javascript复制
bin/spark-submit 
--class org.apache.spark.examples.SparkPi 
--master yarn 
--executor-memory 1G 
--total-executor-cores 2 
/export/servers/spark/examples/jars/spark-examples_2.11-2.2.0.jar 
100

待运行完毕之后,从浏览器输入http://node01:4000/

  • 如果遇到Hadoop HDFS的写入权限问题:

org.apache.hadoop.security.AccessControlException

解决方案:

在hdfs-site.xml中添加如下配置,关闭权限验证

代码语言:javascript复制
<property>
        <name>dfs.permissions</name>
        <value>false</value>
</property>

本次的分享就到这里,受益的小伙伴或对大数据技术感兴趣的朋友记得点赞关注小菌哟~

0 人点赞