配置Container日志聚合功能
配置场景
- 应用完成后将Container日志一次性收集到HDFS。
- 应用运行过程中周期性收集Container输出的日志片段到HDFS。
配置描述
参数入口:
参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入表1中参数名称,修改并保存配置。然后在Yarn服务“概览”页面选择“更多 > 同步配置”。同步完成后重启Yarn服务。
其中“yarn.nodemanager.remote-app-log-dir-suffix”参数还需要在YARN的客户端进行配置,且在ResourceManager、NodeManager和JobHistory节点的配置与在YARN的客户端的配置必须一致。
周期性收集日志功能目前仅支持MapReduce应用,且MapReduce应用必须进行相应的日志文件滚动输出配置,需要在MapReduce客户端节点的“mapred-site.xml”配置文件中进行如表3所示的配置。
参数 |
描述 |
默认值 |
---|---|---|
yarn.log-aggregation-enable |
设置是否打开Container日志聚合功能。
修改参数值后,需重启YARN服务使其生效。
说明:
|
true |
yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds |
NodeManager周期性日志收集的时间间隔。
定义NodeManager唤醒并上传日志的间隔周期。设置为-1或0表示禁用滚动监控,应用任务结束后日志汇聚。取值范围大于等于-1。 |
-1 |
yarn.nodemanager.disk-health-checker.log-dirs.max-disk-utilization-per-disk-percentage |
配置Container日志目录可以占用每块磁盘上YARN的磁盘配额的最大百分比。当日志目录占用空间超过此设定值时,将触发周期性日志收集服务启动一次周期外的日志收集活动,以释放本地磁盘空间。每个磁盘上可提供给Container logs的最大可使用率。当Container logs使用超过这个限制,会触发滚动汇聚。
说明:
|
25 |
yarn.nodemanager.remote-app-log-dir-suffix |
设置HDFS用于存放Container日志的文件夹名称。该配置加上“yarn.nodemanager.remote-app-log-dir”,构成了Container日志的完整存放目录。目录为:“{yarn.nodemanager.remote-app-log-dir}/${user}/{yarn.nodemanager.remote-app-log-dir-suffix}”。
说明:
{user}为运行任务时的用户名。 |
logs |
yarn.nodemanager.log-aggregator.on-fail.remain-log-in-sec |
设置Container日志归集失败后日志在本地保留的时间。单位:秒。
|
604800 |
参考修改集群服务配置参数进入Mapreduce服务参数“全部配置”界面,在搜索框中输入表2中参数名称。
参数 |
描述 |
默认值 |
---|---|---|
yarn.log-aggregation.retain-seconds |
汇聚日志的保存时间。单位:秒。
|
1296000 |
yarn.log-aggregation.retain-check-interval-seconds |
设置扫描HDFS保存的Container聚合日志的间隔时间。单位:秒。
|
86400 |
参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入表3中参数名称。
参数 |
描述 |
默认值 |
---|---|---|
mapreduce.task.userlog.limit.kb |
MR应用程序单个task日志文件大小限制。当日志文件达到该限制时,会新建一个日志文件进行输出。设置为“0”表示不限制日志文件大小。 |
51200 |
yarn.app.mapreduce.task.container.log.backups |
MR应用程序task日志保留的最大个数。 设置为“0”表示不滚动输出。 使用CRLA(ContainerRollingLogAppender)时任务日志备份文件的数量。默认使用CLA(ContainerLogAppender)且container日志不回滚。 当mapreduce.task.userlog.limit.kb和yarn.app.mapreduce.task.container.log.backups都大于0时,任务启用CRLA。取值范围0~999。 |
10 |
yarn.app.mapreduce.am.container.log.limit.kb |
MR应用程序单个AM日志文件大小限制。单位:KB,当日志文件达到该限制时,会新建一个日志文件进行输出。设置为“0”表示不限制单个AM日志文件大小。 |
51200 |
yarn.app.mapreduce.am.container.log.backups |
MR应用程序AM日志保留的最大个数。设置为“0”表示不滚动输出。使用CRLA(ContainerRollingLogAppender)时ApplicationMaster日志备份文件的数量。默认使用CLA(ContainerLogAppender)且容器日志不回滚。 当yarn.app.mapreduce.am.container.log.limit.kb和yarn.app.mapreduce.am.container.log.backups都大于0时,ApplicationMaster启用CRLA。取值范围0~999。 |
20 |
yarn.app.mapreduce.shuffle.log.backups |
MR应用程序shuffle日志保留的最大个数。设置为“0”表示不滚动输出。 当yarn.app.mapreduce.shuffle.log.limit.kb和yarn.app.mapreduce.shuffle.log.backups都大于0时,syslog.shuffle将采用CRLA。取值范围0~999。 |
10 |
yarn.app.mapreduce.shuffle.log.limit.kb |
MR应用程序单个shuffle日志文件大小限制,单位KB。当日志文件达到该限制时,会新建一个日志文件进行输出。设置为“0”不限制单个shuffle日志文件大小。取值范围大于等于0。 |
51200 |