spark 在standalone模式查看日志很方便,直接在8080端口的webui查看很方便,
spark on yarn 只能在8088端口查看,而且只能在 application列表点击 Tracking UI applicationMaster查看当前运行的application日志
那要看历史日志需要作以下配置:
1.yarn-site.xml
<!-- 是否开启聚合日志 --> <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>
2.mapred-site.xml
<property> <name>mapreduce.jobhistory.address</name> <value>spark-master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>spark-master:19888</value> </property>
3.spark-defaults.conf
spark.eventLog.enabled=true spark.eventLog.compress=true #保存在本地 #spark.eventLog.dir=file://usr/local/hadoop-2.7.6/logs/userlogs #spark.history.fs.logDirectory=file://usr/local/hadoop-2.7.6/logs/userlogs #保存在hdfs上 spark.eventLog.dir=hdfs://spark-master:9000/tmp/logs/root/logs spark.history.fs.logDirectory=hdfs://master:9000/tmp/logs/root/logs spark.yarn.historyServer.address=http://master:18080
4.首先启动 hadoop的jobhistory
[root@spark-master hadoop-2.7.6]# sbin/mr-jobhistory-daemon.sh start historyserver starting historyserver, logging to /usr/local/hadoop-2.7.6/logs/mapred-root-historyserver-spark-master.out
有网上说 不需要启动这个,启动还是有作用的,8088点logs就能方便查看日志
5.启动spark的history-server
[root@spark-master spark-2.3.0]# sbin/start-history-server.sh starting org.apache.spark.deploy.history.HistoryServer, logging to /usr/local/spark-2.3.0/logs/spark-root-org.apache.spark.deploy.history.HistoryServer-1-spark-master.out
如果配置正确,启动完成之后,就可以访问18080 和19888
6.日志查看方式
6.1然后在8088端口点击应用或者应用列表中的history也可以进到18080端口界面查看历史的运行情况
6.2 点击history跳转到18080端口界面
6.3继续点击stdout会调转到19888端口界面显示详细日志