2011-10-25 42 views
1

我可以在我的/usr/local/hadoop/logs路径上看到所有的hadoop日志hadoop streaming:如何查看应用程序日志?

但是我可以在哪里看到应用程序级日志?例如:

mapper.py

import logging 

def main(): 
    logging.info("starting map task now") 
    // -- do some task -- // 
    print statement 

reducer.py

import logging 
def main(): 
    for line in sys.stdin: 
     logging.info("received input to reducer - " + line) 
     // -- do some task -- // 
     print statement 

我在哪里可以看到我的应用程序的logging.info或相关的日志报表?
我使用Python和使用hadoop-streaming

谢谢

回答

2

Hadoop的流媒体使用STDIN/STDOUT传递映射器和减速器之间的键/值对,所以日志消息都被写入到特定日志文件 - 请查阅sample codepython logging documentation了解更多详情。这Query可能也有帮助。

+1

谢谢Praveen,我添加了logging.warn语句,它开始累积日志在/ usr/local/hadoop/logs/userlogs/目录/ stderr文件 – daydreamer

+0

只是好奇 - 为什么没有日志记录.info工作? –

+0

我不知道,我会再次尝试 – daydreamer

5

Hadoop收集stderr,它可以在hadoop map/reduce状态网站上查看。所以你可以写信给stderr。

+0

只需写入stderr:'import sys;打印>> sys.stderr,'spam''或其他替代方法http://stackoverflow.com/questions/5574702/how-to-print-to-stderr-in-python – Nickolay

相关问题