kri*_*ang 9 java garbage-collection hadoop mapreduce hadoop-yarn
我正在尝试为我的映射器和缩减器记录垃圾收集指标.但是我无法让日志进入路径:
${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>
但是,尽管有上述配置,但日志并未出现在正确的位置.任何有关此问题的见解都将受到高度赞赏.
我通过使用属性解决了这个问题:
${yarn.app.container.log.dir}登录${yarn.nodemanager.log-dirs}/application_${appid}/container_${contid}目录
所以我使用的完整配置如下:
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xloggc:${yarn.app.container.log.dir}/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.app.container.log.dir}/gc-@taskid@.log -verbose:gc -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintCommandLineFlags</value>
</property>
Run Code Online (Sandbox Code Playgroud)