【问题标题】:hadoop streaming: how to see application logs?hadoop 流:如何查看应用程序日志?
【发布时间】:2011-12-15 05:42:15
【问题描述】:

我可以在我的/usr/local/hadoop/logs 路径上看到所有 hadoop 日志

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

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

谢谢

【问题讨论】:

    标签: python logging hadoop mapreduce hadoop-streaming


    【解决方案1】:

    Hadoop 流使用STDIN/STDOUT 在映射器和reducer 之间传递键/值对,因此必须将日志消息写入特定的日志文件——查看sample codepython logging documentation 了解更多详细信息。这个Query 也可能有帮助。

    【讨论】:

    • 谢谢 Praveen,我添加了 logging.warn 语句,它开始在 /usr/local/hadoop/logs/userlogs/dir/stderr 文件中累积日志
    • 备案(五年后...),默认日志级别为logging.WARNING;要在上面的代码中发出 info-level 语句,必须更改根(默认)记录器的级别:logging.getLogger().setLevel(logging.INFO)
    【解决方案2】:

    Hadoop 收集 stderr,可以在 hadoop map/reduce status 站点上查看。所以你可以写到stderr。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2020-07-03
    • 1970-01-01
    相关资源
    最近更新 更多