<p>我的问题类似于:<a href="https://stackoverflow.com/questions/7894770/hadoop-streaming-how-to-see-application-logs">hadoop streaming: how to see application logs?</a>
(答案中的链接当前不起作用。所以我不得不再发一个问题)</p>
<p>我可以看到我的/usr/local/hadoop/logs路径上的所有hadoop日志</p>
<p>但是在哪里可以看到应用程序级别的日志?例如:</p>
<p>在减速器.py-在</p>
<pre><code>import logging
....
logging.basicConfig(level=logging.ERROR, format='MAP %(asctime)s%(levelname)s%(message)s')
logging.error('Test!')
...
</code></pre>
<p>我在stderr中看不到任何日志(警告、错误)。在</p>
<p>在哪里可以找到我的应用程序日志语句?我使用Python和hadoop流媒体。在</p>
<p>附加问题:</p>
<p>如果要使用文件存储/聚合应用程序日志,例如:</p>
<p>在减速器.py-在</p>
^{pr2}$
<p>(假设我测试日志在我的hadoop集群中master和all slaves的$HOME位置)。我能在这样的环境下实现分布式的Hadoop吗?如果是这样,如何才能做到这一点?在</p>
<p>我尝试了此操作并运行了一个流式处理作业示例,但只看到以下错误:</p>
<pre><code>Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1
at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:330)
at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:543)
at org.apache.hadoop.streaming.PipeReducer.close(PipeReducer.java:134)
at org.apache.hadoop.io.IOUtils.cleanup(IOUtils.java:237)
at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:484)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:397)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:175)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:170)
Container killed by the ApplicationMaster.
Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
</code></pre>
<p>请帮助我理解如何在hadoop流作业中实现日志记录。在</p>
<p>谢谢</p>