簡體   English   中英

紗線迷你集群容器日志目錄不包含syslog文件

[英]Yarn mini-cluster container log directories don't contain syslog files

我已經安裝了帶有1個節點管理器,4個本地目錄和4個日志目錄的YARN MapReduce迷你集群,依此類推基於CDH 5.1.0的hadoop 2.3.0。 它看起來或多或少地起作用。 我無法實現的是從容器進行syslog日志記錄。 我看到了容器日志目錄, stdoutstderr文件,但沒有使用MapReduce容器日志記錄的syslog 適當的stderr警告我沒有log4j配置,並且不包含任何其他字符串:

log4j:WARN找不到記錄器的附加程序(org.apache.hadoop.metrics2.impl.MetricsSystemImpl)。 log4j:WARN請正確初始化log4j系統。 log4j:WARN有關更多信息,請參見http://logging.apache.org/log4j/1.2/faq.html#noconfig

如何將常規日志記錄添加到容器中? 還有一次是YARN迷你集群。

有什么建議或有用的觀點嗎?

僅以較低的肯定嘗試的方式作為答案:

  • 是的,我確定日志目錄正確,並且可以看到容器日志目錄和應用程序之間的相關性。
  • 是的,MapReduce作業可以工作。 至少那些期望工作的人。
  • 小型群集日志記錄本身是正常的方式,並與我設置的內容一致。 這僅與容器有關。
  • 像DFS clsuter這樣的較低層正常工作。 我什至在這里還有HBase和ZK迷你集群,它們工作正常。 我只需要為MapReduce作業調試記錄日志。

好的,最后碰巧是關於類路徑,客戶端配置和打包的。

  1. 客戶端配置應包括針對YARN應用程序的正確類路徑。 在我的情況下,我在yarn-site.xml添加了以下幾行(請注意$HADOOP_COMMON_HOME替換):
 <property> <name>yarn.application.classpath</name> <value>$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*</value> </property> 
  1. 我已經在微型集群啟動腳本中添加了以下變量定義(值得注意的是,相對於微型集群啟動腳本,我將所有微型集群服務器端JARS都放入了./lib

BASE_PATH =“ pwd ”導出HADOOP_COMMON_HOME = $ {BASE_PATH}

無法進行日志記錄的根本原因是客戶端映射減少作業在YARN上的新VM內啟動,卻不知道在哪里可以找到hadoop-yarn-server-nodemanager.jar ,其中包含container-log4j.properties文件,該文件負責容器默認日志記錄組態。 現在一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM