使用Yarn 作为集群管理器,启动Spark 时,无法再从SparkUI-4040 端口查看相应的信息。只能从Hadoop 的Yarn、历史服务器查看,但是默认是没有开启。所以,这里展示如何配置开启历史服务器、查看日志。
Hadoop-2.7.3
Spark-2.4.0
1. HDFS 配置
确保你的Hadoop 已经完成配置,并且已经能够正常启动。
下面,在已有的Hadoop 配置上,增加配置。
修改mapred-site.xml
<!--Spark Yarn-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
修改 yarn-site.xml
<!--Spark Yarn-->
<!-- 是否开启聚合日志 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 配置日志服务器的地址,work节点使用 -->
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs/</value>
</property>
<!-- 配置日志过期时间,单位秒 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
将master 改为你的主节点的主机名,直接复制到文件末尾即可。
修改完成后,将这两个配置文件分别复制到各个子节点。
并且,复制到Spark 安装目录下的 conf/ 目录(注:如果没有复制过hdfs-yarn.xml,还应将其复制过去)
2. Spark 配置
文件末尾添加(conf/ 目录下):
# 事件日志
spark.eventLog.enabled=true
spark.eventLog.compress=true
保存在本地
# spark.eventLog.dir=file://usr/local/hadoop-2.7.3/logs/
# spark.history.fs.logDirectory=file://usr/local/hadoop-2.7.3/logs/
# 保存在hdfs上
spark.eventLog.dir=hdfs://master:9000/tmp/spark-yarn-logs
spark.history.fs.logDirectory=hdfs://master:9000/tmp/spark-yarn-logs
spark.yarn.historyServer.address=spark-master:18080
创建HDFS 日志目录:
该目录与上述yarn-site.xml 中的目录需要一致:
hdfs dfs -mkdir -p /tmp/spark-yarn-logs
3. 启动
# 启动HDFS
start-all.sh
# 启动Hadoop 历史服务器
mr-jobhistory-daemon.sh start historyserver
# 启动Spark 集群
sbin/start-all.sh
# 启动Spark 历史服务器
sbin/start-history-server.sh