Hadoop:(ver - 1.2.1),(1 + 8节点集群)
我的用例是,我试图获取执行特定猪脚本所花费的时间,以及从 mapreduce 的角度来看这些时间是如何花费的。我需要多次运行 pig 脚本(比如 100 次)才能获得平均时间。我已经启用pig.udf.profile
,这让我花时间在每个 udf 函数上作为 mapreduce 计数器。我还对每个作业报告的其他延迟、内存指标(cpu 时间、堆使用)感兴趣。我可以从 jobtracker web UI( host:50030/jobdetails.jsp?jobid=blah
) 中看到这些计数器。现在,我的问题是,有没有办法在工作中汇总这些计数器。或者,我将如何构建一个看起来像
Run1 Run2 Run3 ...
Cpu time | | |
Redcr wait | | |
UdfCntr1(approx_us) | | |
UdfCntr2(approx_invc) | | |
CounterY(approx_us) | | |
就 Hadoop 而言,每次运行都是不同的工作。在通过日志文件夹 grep 之后,我发现计数器在history/done/..
文件夹中。是否存在组合结果的现有技术,或者我注定要编写自己的解析器来遍历每个日志文件。我认为用例对于现有解决方案来说已经足够普遍了——任何指针都会有所帮助。
谢谢。