Hadoop 2.7:MapReduce 任务使用流的总时间 API
Hadoop 2.7: MapReduce task's total time using streaming API
我在本地集群上 运行ning Hadoop 2.7.1(所有节点 运行ning Ubuntu 14.x 或更高版本)。我的 mapreduce 程序是用 Python 编写的,我正在使用流 API 到 运行 任务。我想找出所有节点上的所有映射任务所花费的总时间。怎么做?我找不到作业文件。 (可能从 Hadoop 2.x 开始删除)。
所有映射任务的总时间是作业运行时间。您可以在 hadoop web 界面中查看它(单击指定的作业)。 http://ip_address:8088/
如果您要查找在所有任务中花费的所有聚合 时间的总和,您可能需要查看计数器。这些可以在作业历史服务器上查看,也可以在深入了解单个作业后单击左侧的 Counters
,或者您可以使用 mapred job
命令以编程方式更多地执行此操作,例如打印所有成功作业的摘要状态:
mapred job -list all | grep SUCCEEDED | awk '{ print }' | \
xargs -n 1 mapred job -status
最接近 "aggregate wall time" 且算作集群消耗时间的是 "time spent in occupied slots",即 SLOTS_MILLIS_MAPS
和 SLOTS_MILLIS_REDUCES
:
mapred job -list all | grep SUCCEEDED | awk '{ print }' | \
xargs -n 1 -i mapred job -counter {} org.apache.hadoop.mapreduce.JobCounter SLOTS_MILLIS_MAPS
mapred job -list all | grep SUCCEEDED | awk '{ print }' | \
xargs -n 1 -i mapred job -counter {} org.apache.hadoop.mapreduce.JobCounter SLOTS_MILLIS_REDUCES
我在本地集群上 运行ning Hadoop 2.7.1(所有节点 运行ning Ubuntu 14.x 或更高版本)。我的 mapreduce 程序是用 Python 编写的,我正在使用流 API 到 运行 任务。我想找出所有节点上的所有映射任务所花费的总时间。怎么做?我找不到作业文件。 (可能从 Hadoop 2.x 开始删除)。
所有映射任务的总时间是作业运行时间。您可以在 hadoop web 界面中查看它(单击指定的作业)。 http://ip_address:8088/
如果您要查找在所有任务中花费的所有聚合 时间的总和,您可能需要查看计数器。这些可以在作业历史服务器上查看,也可以在深入了解单个作业后单击左侧的 Counters
,或者您可以使用 mapred job
命令以编程方式更多地执行此操作,例如打印所有成功作业的摘要状态:
mapred job -list all | grep SUCCEEDED | awk '{ print }' | \
xargs -n 1 mapred job -status
最接近 "aggregate wall time" 且算作集群消耗时间的是 "time spent in occupied slots",即 SLOTS_MILLIS_MAPS
和 SLOTS_MILLIS_REDUCES
:
mapred job -list all | grep SUCCEEDED | awk '{ print }' | \
xargs -n 1 -i mapred job -counter {} org.apache.hadoop.mapreduce.JobCounter SLOTS_MILLIS_MAPS
mapred job -list all | grep SUCCEEDED | awk '{ print }' | \
xargs -n 1 -i mapred job -counter {} org.apache.hadoop.mapreduce.JobCounter SLOTS_MILLIS_REDUCES