• 如何查看MapReduce执行的程序中的输出日志


    我们开发程序的时候,好多人都喜欢用sysout输出内容来查看运行情况。但是在MR程序里写了之后,却不知道去哪里查找,可以参考这篇文章。

    第一种方法,我们可以在MapReduce任务查看页面找到这些日志

    1.在MapReduce任务查看页面找到任务,点击进入

     2.在任务详情页最下面由执行了该任务的节点

     3.在节点的web地址后面加上logs/userlogs就能看到application列表,选择自己要找的

    4.依次查看container

    5.从container进去之后就是最终要找的日志了

     

    • stderr:输出System.err输出的信息;
    • stdout:输出System.out输出的信息
    • syslog:输出日志工具(比如Slf4j,log4j)输出的信息

    可以看出通过管理页面查找sysout日志是十分麻烦的,而且mapper和reducer的日志不在一起,如果有多个reducer的话查看起来更是不方便

    我们的代码(mapper,reducer)是放到了Yarn上面去执行,Yarn的日志存放地址是在yarn-env.sh中配置的,如下

    我们可以去节点上面查找;为了方便快捷  直接用脚本搞定

    scanMRLog.sh [applicationid] [logtype 可选]

    if [ $# -le 0 ]
    then
        echo 缺少参数
        exit 1
    fi
    
    logtype=out
    
    if [ $# -ge 1 ]
    then
        logtype=${2}
    fi 
    
    for n in `cat ${HADOOP_HOME}/etc/hadoop/slaves`
    do
        echo ===========查看节点 $n============
        ssh $n "cat ~/logs/yarn/userlogs/${1}/container_*/*${logtype}"
    done

    查看的时候只需要一行命令搞定,mapper,reducer里面的输出就都能看到了。默认查询out,其他可输入类型还有 err,log

    # 命令中的appId从MRWeb管理端就能看到
    sh test.sh application_1479689852668_0197



  • 相关阅读:
    查看gpu和cpu使用情况 linux
    Oracle通过数据文件进行 数据恢复
    LeetCodeJava题解 283. Move Zeroes
    LeetCodeJava题解 844. Backspace String Compare
    LeetCodeJava题解 27. Remove Element
    LeetCodeJava题解 367. Valid Perfect Square
    LeetCodeJava题解 26. Remove Duplicates from Sorted Array
    EasyExcel实现合并一列的多行数据
    编辑qml的工具及插件
    qml学习(Qt Quick)
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/6113248.html
Copyright © 2020-2023  润新知