【发布时间】:2015-11-20 07:15:06
【问题描述】:
我在本地集群上运行 Hadoop 2.7.1(所有节点运行 Ubuntu 14.x 或更高版本)。我的 mapreduce 程序是用 Python 编写的,我正在使用流 API 来运行任务。我想找出所有节点上的所有映射任务所花费的总时间。怎么做?我找不到工作文件。 (可能从 Hadoop 2.x 开始删除)。
【问题讨论】:
标签: python hadoop mapreduce hadoop-streaming
我在本地集群上运行 Hadoop 2.7.1(所有节点运行 Ubuntu 14.x 或更高版本)。我的 mapreduce 程序是用 Python 编写的,我正在使用流 API 来运行任务。我想找出所有节点上的所有映射任务所花费的总时间。怎么做?我找不到工作文件。 (可能从 Hadoop 2.x 开始删除)。
【问题讨论】:
标签: python hadoop mapreduce hadoop-streaming
如果您要查找在所有任务中花费的所有聚合时间的总和,您可能需要查看计数器。这些可以在作业历史服务器上查看,也可以在钻取单个作业后单击左侧的Counters,或者您可以使用mapred job 命令以编程方式执行此操作,例如,打印出所有的摘要状态成功的工作:
mapred job -list all | grep SUCCEEDED | awk '{ print $1 }' | \
xargs -n 1 mapred job -status
最接近集群消耗时间的“总时间”是“在占用时隙中花费的时间”,即SLOTS_MILLIS_MAPS 和SLOTS_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
【讨论】:
所有映射任务的总时间是作业经过的时间。您可以在 hadoop web 界面中查看它(单击指定的作业)。 http://ip_address:8088/
【讨论】: