我想计算刚刚在 Hadoop -2.6 上完成的成功 Map Reduce 作业(准确)的 Total(Elapsed)时间。我想在我的 shell 脚本中度过这段时间。我知道以下计算完成时间的方法
http://192.168.1.169:8088/cluster/apps
)HTML 并提取耗时。(但这种方法的问题是有时 Hadoop-2.6 Web 界面会长时间挂起。所以这种风格对我没有帮助。我没有知道它为什么挂起吗?)#!/bin/bash
e=$(date +%s%N | cut -b1-13)
a=($(mapred job -list all |awk '{print $1," ",$2," ",$3}' | sort -k1 -n | tail -n 3 | head -n 1))
wait
>finishTime
destdir=./finishTime
>destdir
if [ "${a[1]}" = "SUCCEEDED" ]
then
total=$(($e - ${a[2]}))
echo "$total" > "$destdir"
else
echo $(($(sed -n '1p' < ./init_setting) * 1000)) > "$destdir"
fi
exit
如果您知道一些提取刚刚成功完成的工作的耗时的好方法,请通知我。如果我可以通过控制台提取它会很好。
最佳答案
你知道hadoop命令“history”吗,你可以用这个命令打印已完成作业的详细信息。
用法是HDFS上的“bin/hadoop job -history”.“”,即job dir。例如
bin/hadoop job -history hdfs://172.16.19.5:9000/output/ >> test
注意替换你的路径
图片上的结果
关于bash - Hadoop-2.6 中 Map Reduce 作业的总时间计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119533/