我正在尝试为我的映射器和缩减器记录垃圾收集指标。但是我无法让日志进入路径:
${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>
但尽管进行了上述配置,日志仍未出现在正确的位置。非常感谢对此问题的任何见解。
最佳答案
- 运行
ps xww
或检查/proc/<pid>/cmdline
查看标志是否与预期值一起传递给 JVM - 检查目录是否存在
关于java - 将垃圾收集日志保存到 ${yarn.nodemanager.log-dirs}/application_${appid}/container_${contid} 中,用于 Hadoop Yarn 上的映射器和缩减器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39278353/