Spark-Yarn开启日志聚集服务

在yarn模式下,spark作业运行相关的executor和ApplicationMaster都是运行在yarn的container中的
一个作业运行完了以后,yarn有两种方式来处理spark作业打印出的日志

第一种是聚合日志方式(推荐,比较常用)

这种方式的话,顾名思义,就是说,将散落在集群中各个机器上的日志,最后都给聚合起来,让我们可以统一查看
如果打开了日志聚合的选项,即yarn.log-aggregation-enable,container的日志会拷贝到hdfs上去,并从机器中删除
对于这种情况,可以使用yarn logs -applicationId 命令,来查看日志
yarn logs命令,会打印出application对应的所有container的日志出来,当然,因为日志是在hdfs上的,我们自然也可以通过hdfs的命令行来直接从hdfs中查看日志
日志在hdfs中的目录,可以通过查看yarn.nodemanager.remote-app-log-dir和yarn.nodemanager.remote-app-log-dir-suffix属性来获知

1.配置日志聚集功能。

Hadoop 默认是不启用日志聚集的。 在 yarn-site.xml 文件里配置启用日志聚集。

<!--配置历史服务器-->
<property>  
    <name>mapreduce.jobhistory.address</name>  
    <value>192.168.1.105:10020</value>  
</property>  
<property>  
    <name>mapreduce.jobhistory.webapp.address</name>  
    <value>192.168.1.105:19888</value>  
</property>
<!--配置日志聚集-->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>106800</value>
</property>

yarn.log-aggregation-enable : 是否启用日志聚集功能。
yarn.log-aggregation.retain-seconds : 设置日志保留时间, 单位是秒。

2.将配置文件分发到其他节点的相应目录

[hadoop@bigData01 hadoop]$ scp /home/hadoop/app/modules/hadoop-2.6.0/etc/hadoop/yarn-site.xml hadoop@bigData02:/ home/hadoop/app/modules/hadoop-2.6.0/etc/hadoop/ 

[hadoop@bigData01 hadoop]$ scp /home/hadoop/app/modules/hadoop-2.6.0/etc/hadoop/yarn-site.xml hadoop@bigData03:/ home/hadoop/app/modules/hadoop-2.6.0/etc/hadoop/

3.开启Spark history server

配置 spark-defaults.conf

spark.eventLog.enabled             true
spark.eventLog.dir                 file:///home/spark-2.1.1-bin-hadoop2.6.0/history_log
spark.history.update.interval      1
spark.history.retainedApplications 50
spark.history.ui.port              18080

然后启动

sbin/start-history-server.sh /home/spark-2.1.1-bin-hadoop2.7/history_log

4.重启 Yarn 进程

[hadoop@bigData hadoop-2.6.0]$ sbin/stop-yarn.sh

[hadoop@bigData hadoop-2.6.0]$ sbin/start-yarn.sh

5.重启 HistoryServer 进程

hadoop配置启动historyserver
/usr/local/hadoop-2.6.0目录下执行如下命令

[hadoop@bigData hadoop-2.6.0]$ sbin/mr-jobhistory-daemon.sh stop historyserver

[hadoop@bigData hadoop-2.6.0]$ sbin/mr-jobhistory-daemon.sh start historyserver

6.测试日志聚集

(1) 运行一个 demo MapReduce, 使之产生日志

bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /input /output1

(2) 查看日志
运行 Job 后, 就可以在历史服务器 Web 页面查看各个 Map 和 Reduce 的日志了。

第二种 web ui(可以去配一下)

日志也可以通过spark web ui来查看executor的输出日志
但是此时需要启动History Server,需要让spark history server和mapreduce history server运行着
并且在yarn-site.xml文件中,配置yarn.log.server.url属性
spark history server web ui中的log url,会将你重定向到mapreduce history server上,去查看日志

第三种 分散查看(通常不推荐)

如果没有打开聚合日志选项,那么日志默认就是散落在各个机器上的本次磁盘目录中的,在YARN_APP_LOGS_DIR目录下
根据hadoop版本的不同,通常在/tmp/logs目录下,或者$HADOOP_HOME/logs/userlogs目录下
如果你要查看某个container的日志,那么就得登录到那台机器上去,然后到指定的目录下去,找到那个日志文件,然后才能查看

YARN日志聚合相关参数配置

参数配置yarn-site.xml

1. yarn.log-aggregation-enable

参数说明:是否启用日志聚合功能,日志聚合开启后保存到HDFS上。

默认值:false

2. yarn.log-aggregation.retain-seconds

参数说明:聚合后的日志在HDFS上保存多长时间,单位为s。

默认值:-1(不启用日志聚合),例如设置为86400,24小时

3. yarn.log-aggregation.retain-check-interval-seconds

参数说明:删除任务在HDFS上执行的间隔,执行时候将满足条件的日志删除(超过参数2设置的时间的日志),如果是0或者负数,则为参数2设置值的1/10,上例值在此处为8640s。

默认值:-1

4. yarn.nodemanager.log.retain-seconds

参数说明:当不启用日志聚合此参数生效,日志文件保存在本地的时间,单位为s

默认值:10800

5. yarn.nodemanager.remote-app-log-dir

参数说明:当应用程序运行结束后,日志被转移到的HDFS目录(启用日志聚集功能时有效),修改为保存的日志文件夹。

默认值:/tmp/logs

6. yarn.nodemanager.remote-app-log-dir-suffix

参数说明:远程日志目录子目录名称(启用日志聚集功能时有效)。

默认值:logs 日志将被转移到目录 y a r n . n o d e m a n a g e r . r e m o t e − a p p − l o g − d i r / {yarn.nodemanager.remote-app-log-dir}/ yarn.nodemanager.remoteapplogdir/{user}/${thisParam}下

参考资料:

Spark核心编程进阶之yarn模式下日志查看
https://www.jianshu.com/p/c67b4706adc1

开启Spark history server
https://www.cnblogs.com/parody/p/9935649.html

hadoop配置启动historyserver
https://blog.csdn.net/tszxlzc/article/details/74838674

yarn开启日志聚集服务
https://blog.csdn.net/lrf2454224026/article/details/82700129

YARN日志聚合相关参数配置
https://www.cnblogs.com/xizhunet/p/5131731.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值