【问题标题】:Hadoop 2.7: MapReduce task's total time using streaming APIHadoop 2.7:MapReduce 任务使用流式 API 的总时间
【发布时间】:2015-11-20 07:15:06
【问题描述】:

我在本地集群上运行 Hadoop 2.7.1(所有节点运行 Ubuntu 14.x 或更高版本)。我的 mapreduce 程序是用 Python 编写的,我正在使用流 API 来运行任务。我想找出所有节点上的所有映射任务所花费的总时间。怎么做?我找不到工作文件。 (可能从 Hadoop 2.x 开始删除)。

【问题讨论】:

    标签: python hadoop mapreduce hadoop-streaming


    【解决方案1】:

    如果您要查找在所有任务中花费的所有聚合时间的总和,您可能需要查看计数器。这些可以在作业历史服务器上查看,也可以在钻取单个作业后单击左侧的Counters,或者您可以使用mapred job 命令以编程方式执行此操作,例如,打印出所有的摘要状态成功的工作:

    mapred job -list all | grep SUCCEEDED | awk '{ print $1 }' | \
        xargs -n 1 mapred job -status
    

    最接近集群消耗时间的“总时间”是“在占用时隙中花费的时间”,即SLOTS_MILLIS_MAPSSLOTS_MILLIS_REDUCES

    mapred job -list all | grep SUCCEEDED | awk '{ print $1 }' | \
        xargs -n 1 -i mapred job -counter {} org.apache.hadoop.mapreduce.JobCounter SLOTS_MILLIS_MAPS
    mapred job -list all | grep SUCCEEDED | awk '{ print $1 }' | \
        xargs -n 1 -i mapred job -counter {} org.apache.hadoop.mapreduce.JobCounter SLOTS_MILLIS_REDUCES
    

    【讨论】:

      【解决方案2】:

      所有映射任务的总时间是作业经过的时间。您可以在 hadoop web 界面中查看它(单击指定的作业)。 http://ip_address:8088/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多