我正在尝试为我的Map器和还原器记录垃圾收集度量。但是,我无法获取日志以进入路径: ${yarn.nodemanager.log-dirs}/application_${appid}/container_${contid}
以下是我的mapred-site.xml及其相关属性的外观: <property> <name>mapreduce.map.java.opts</name> <value>-Xloggc:${yarn.nodemanager.log-dirs}/application_${appid}/container_${contid}/gc-@taskid@.log -verbose:gc -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintCommandLineFlags</value> </property> <property> <name>mapreduce.reduce.java.opts</name> <value>-Xloggc:${yarn.nodemanager.log-dirs}/application_${appid}/container_${contid}/gc-@taskid@.log -verbose:gc -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintCommandLineFlags</value> </property>
但是,尽管有上述配置,日志并没有显示在正确的位置。对这一问题的任何见解都将不胜感激。
3条答案
按热度按时间dm7nw8vv1#
我使用以下属性解决了此问题:
${yarn.app.container.log.dir}
登录${yarn.nodemanager.log-dirs}/application_${appid}/container_${contid}
目录所以我使用的完整配置如下:
oknwwptz2#
跑
ps xww
或检查/proc/<pid>/cmdline
查看标志是否与预期值一起传递给jvm检查目录是否存在
r1wp621o3#
考虑到你的旗帜似乎是正确的,我建议打印的旗帜,该委员会
Java
进程正在按照8472的建议加载。就我个人而言,我对hadoop并不熟悉,但我对您描述的场景进行研究的最初步骤之一是检查所使用的变量的值,主要是
${yarn.nodemanager.log-dirs}
可能有以下情况:/opt/path to my/app
这可能导致-Xloggc
值仅为/opt/path
.最后,我建议您进行一些测试,以确保正确解释这些值:
我将努力改进这个答案,稍后再详细说明。