Apache PIG - 如何显示脚本的执行时间?

时间:2015-04-29 16:36:19

标签: hadoop apache-pig hadoop2

是否有可能显示PIG脚本的整个执行时间? 最好的办法是生成一个单独的文件,其中包含执行脚本所用的总时间(例如hh:mm:s)。

请给我一个PIG代码示例来实现这一点。

2 个答案:

答案 0 :(得分:0)

定时UDF

提高性能和效率的第一步是衡量  时间在哪里。猪提供轻量级的方法  大致测量不同时间花费的时间  用户定义的函数(UDF)和加载器。只需设置  pig.udf.profile属性为true。这将导致新的计数器  跟踪脚本生成的所有Map-Reduce作业:  approx_microsecs测量a中花费的大致时间  UDF和approx_invocations测量大致的次数  调用了UDF。请注意,这可能会产生大量的  计数器(每个UDF两个)。过多的柜台可能会导致贫困  JobTracker的性能,因此请谨慎使用此功能  在测试集群上。

您可以在资源管理器Web UI中查看所有作业计数器。

从 - https://pig.apache.org/docs/r0.11.1/perf.html

答案 1 :(得分:0)

a = load' / mapred / history / done'使用HadoopJobHistoryLoader()作为(j:map [],m:map [],r:map []); b = foreach a generate j#' PIG_SCRIPT_ID'作为id,j#' USER'作为用户,j#' JOBNAME'作为script_name,          (长)j#' SUBMIT_TIME'作为开始,(长)j#' FINISH_TIME'结束; c = b组(id,user,script_name) d = foreach c生成group.user,group.script_name,(MAX(b.end) - MIN(b.start)/ 1000; dump d;