Hadoop ApachePig-如何显示脚本的执行时间?

Hadoop ApachePig-如何显示脚本的执行时间?,hadoop,apache-pig,hadoop2,Hadoop,Apache Pig,Hadoop2,有没有可能显示清管器脚本的整个执行时间? 最好是生成一个单独的文件,其中包含执行脚本所需的总时间,例如hh:mm:s 请给我一个PIG代码示例来实现这一点。为UDF计时 提高绩效和效率的第一步是测量 时间在哪里。Pig提供了一种重量轻的 大致衡量在不同领域花费的时间 用户定义的函数UDF和加载程序。只需设置 pig.udf.profile属性设置为true。这将导致创建新计数器 跟踪脚本生成的所有Map Reduce作业: approx_microsecs测量在一次测试中花费的大致时间量 UDF

有没有可能显示清管器脚本的整个执行时间? 最好是生成一个单独的文件,其中包含执行脚本所需的总时间,例如hh:mm:s

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

为UDF计时

提高绩效和效率的第一步是测量 时间在哪里。Pig提供了一种重量轻的 大致衡量在不同领域花费的时间 用户定义的函数UDF和加载程序。只需设置 pig.udf.profile属性设置为true。这将导致创建新计数器 跟踪脚本生成的所有Map Reduce作业: approx_microsecs测量在一次测试中花费的大致时间量 UDF和approx_调用测量了大约的次数 UDF被调用。请注意,这可能会产生大量 每个自定义项两个计数器。计数器数量过多可能导致性能不佳 JobTracker性能,因此请仔细使用此功能,最好 在测试集群上

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


From-

a=load'/mapred/history/done',使用HadoopJobHistoryLoader作为j:map[],m:map[],r:map[]; b=为每个a生成j'PIG_SCRIPT_ID'作为ID,j'USER'作为用户,j'JOBNAME'作为脚本_name, 长“提交时间”作为开始,长“完成时间”作为结束; c=按id、用户、脚本名称划分的b组 d=foreach c generate group.user,group.script_name,MAXb.end-MINb.start/1000;
倾倒区d

感谢您提供的脚本,但我总是收到:2015-05-01 13:49:25633[main]错误org.apache.pig.tools.grunt.grunt-错误1070:无法使用导入解析HadoopJobHistoryLoader:[,java.lang.,org.apache.pig.builtin.,org.apache.pig.impl.builtin.]另外,我没有任何/mapred/history/done路径。只需检查类路径中是否有piggybank.jar,或者尝试在pig脚本中注册piggbank.jar……您可以检查hadoop.job.history.location或mapred.job.tracker.history.completed.location属性来查找历史文件的路径。。。