日志相关的一般配置项
- NodeManager 存储容器日志文件的本地文件系统中的目录列表。
yarn.nodemanager.log-dirs - 选择是否启用日志聚合. 如果不启用聚合, NMs 会把日志存储在节点本地(就像第一代所做的那样).默认值为true
yarn.log-aggregation-enable
yarn.log-aggregation-enable=false
1,容器日志在节点上的存储位置, 默认值是 ${yarn.log.dir}/userlogs.
2,一个应用的本地化日志目录是这样的格式 ${yarn.nodemanager.log-dirs}/application_${appid}
3,一个独立的容器的日志文件夹会在上面的文件夹下, 文件夹命名格式是这样 container_${containerid}
4,对于 MapReduce 的应用, 每个容器目录下会包含容器生成的三个文件, stderr, stdin 和 syslog
5,当yarn.log-aggregation-enable为true时,会将yarn.nodemanager.log-dirs 目录下的所有日志聚合到hdfs中。
yarn.log-aggregation-enable=true
1,本地目录不会有日志,会随时上传到聚合后的hdfs目录中。
日志聚合启用后的相关配置
-
应用程序结束时存储应用程序日志的 HDFS 目录, 默认值/tmp/logs
yarn.nodemanager.remote-app-log-dir -
将在 {yarn.nodemanager.remote-app-log-dir}/${user}/{thisParam} 创建删除日志目录,这个目录下会有容器的日志,默认值logs
yarn.nodemanager.remote-app-log-dir-suffix -
删除聚合日志前要保留它们多久,配置成 -1 或者一个负值就不会删除聚合日志,默认值 7天
yarn.log-aggregation.retain-seconds -
cdh中默认没有这个属性,确定多长时间去检查一次聚合日志的留存情况以执行日志的删除. 如果设置为 0 或者负值, 那这个值就会用聚合日志的留存时间的十分之一来自动配置, 默认值是 -1.
yarn.log-aggregation.retain-check-interval-seconds
日志聚合未启用的相关配置
- 保留用户日志的时间(以秒为单位)。仅适用在日志聚合已禁用的情况下,默认3小时
yarn.nodemanager.log.retain-seconds
命令行查看方式
[root@datanode1 container-logs]# yarn logs
Retrieve logs for completed YARN applications.
usage: yarn logs -applicationId <application ID> [OPTIONS]
general options are:
-appOwner <Application Owner> AppOwner (assumed to be current user if
not specified)
-containerId <Container ID> ContainerId (must be specified if node
address is specified)
-nodeAddress <Node Address> NodeAddress in the format nodename:port
(must be specified if container id is
specified)
网友评论