我在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作业调试日志。
1条答案
按热度按时间11dmarpk1#
好的,最后碰巧是关于类路径、客户机配置和打包的。
客户机配置应包括Yarn应用程序的适当类路径。在我的例子中,我在
yarn-site.xml
(请注意$HADOOP_COMMON_HOME
替代):我已经在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
文件,该文件反过来负责容器默认日志记录配置。现在一切正常。