yarn小型集群容器日志目录不包含syslog文件

nuypyhwy  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(346)

我在cdh5.1.0的hadoop2.3.0上安装了一个带有1个节点管理器、4个本地和4个日志目录的yarn-mapreduce小型集群。它看起来或多或少起作用了。我未能实现的是从容器进行syslog日志记录。我看到了容器日志目录, stdout 以及 stderr 文件,但不是 syslog 使用mapreduce容器日志记录。适当的 stderr 警告我没有log4j配置并且不包含任何其他字符串:
log4j:warn找不到logger(org.apache.hadoop.metrics2.impl.metricssystemimpl)的附加程序。log4j:warn请正确初始化log4j系统。log4j:请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig 更多信息。
如何将常规日志添加到容器中?又一次,它是Yarn迷你cluaster。
有什么建议或有用的观点吗?
只是为了减少被试过的答案:
是的,我确信日志目录是正确的,并且我看到了容器日志目录和我的应用程序之间的关联。
是的,mapreduce工作正常。至少是那些希望工作的人。
小集群日志本身是在正常的方式,并根据我的设置。这只与容器有关。
像dfs clsuter这样的底层工作正常。我甚至有hbase和zk小集群在这里,他们的工作正常。只是我需要mapreduce作业调试日志。

11dmarpk

11dmarpk1#

好的,最后碰巧是关于类路径、客户机配置和打包的。
客户机配置应包括Yarn应用程序的适当类路径。在我的例子中,我在 yarn-site.xml (请注意 $HADOOP_COMMON_HOME 替代):

<property>
    <name>yarn.application.classpath</name>
    <value>$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*</value>
</property>

我已经在mini-cluster启动脚本中添加了以下变量定义(值得注意的是,我已经将所有mini-cluster服务器端jar都添加到 ./lib 相对于小型集群启动脚本:
基本路径=“ pwd “导出hadoop\u common\u home=${base\u path}
日志记录不起作用的根本原因是客户端Map减少作业在yarn上的新vm内启动,而不知道在何处定位 hadoop-yarn-server-nodemanager.jar 其中包含 container-log4j.properties 文件,该文件反过来负责容器默认日志记录配置。现在一切正常。

相关问题