有没有可能显示一个pig脚本的整个执行时间?最好是生成一个单独的文件,其中包含执行脚本所花费的总时间(例如hh:mm:s)。请给我一个Pig代码的例子来实现这一点。
mkh04yzy1#
为自定义项计时提高绩效和效率的第一步是衡量时间的去向。pig提供了一种轻量级方法,用于大致测量在不同的用户定义函数(udf)和装入器中花费的时间。只需将pig.udf.profile属性设置为true。这将导致跟踪脚本生成的所有map reduce作业的新计数器:approx\u microsecs度量在udf中花费的大致时间量,approx\u invocations度量调用udf的大致次数。请注意,这可能会产生大量计数器(每个udf两个)。过多的计数器会导致jobtracker性能不佳,因此请小心使用此功能,最好在测试集群上使用。您可以在资源管理器web ui中查看所有作业计数器。从-https://pig.apache.org/docs/r0.11.1/perf.html
r1zk6ea12#
a=使用hadoopjobhistoryloader()加载'/mapred/history/done'(j:map[],m:map[],r:map[]);b=foreach a生成j#'pig#script#u id'作为id,j#'user'作为user,j#'jobname'作为script#u name,(long)j#'submit#time'作为start,(long)j#'finish#time'作为end;c=groupb by(id,user,script\u name)d=foreach c generate group.user,group.script\u name,(max(b.end)-min(b.start)/1000;倾倒区d;
2条答案
按热度按时间mkh04yzy1#
为自定义项计时
提高绩效和效率的第一步是衡量时间的去向。pig提供了一种轻量级方法,用于大致测量在不同的用户定义函数(udf)和装入器中花费的时间。只需将pig.udf.profile属性设置为true。这将导致跟踪脚本生成的所有map reduce作业的新计数器:approx\u microsecs度量在udf中花费的大致时间量,approx\u invocations度量调用udf的大致次数。请注意,这可能会产生大量计数器(每个udf两个)。过多的计数器会导致jobtracker性能不佳,因此请小心使用此功能,最好在测试集群上使用。
您可以在资源管理器web ui中查看所有作业计数器。
从-https://pig.apache.org/docs/r0.11.1/perf.html
r1zk6ea12#
a=使用hadoopjobhistoryloader()加载'/mapred/history/done'(j:map[],m:map[],r:map[]);b=foreach a生成j#'pig#script#u id'作为id,j#'user'作为user,j#'jobname'作为script#u name,(long)j#'submit#time'作为start,(long)j#'finish#time'作为end;c=groupb by(id,user,script\u name)d=foreach c generate group.user,group.script\u name,(max(b.end)-min(b.start)/1000;倾倒区d;