是否有可能显示PIG脚本的整个执行时间? 最好的办法是生成一个单独的文件,其中包含执行脚本所用的总时间(例如hh:mm:s)。
请给我一个PIG代码示例来实现这一点。
答案 0 :(得分:0)
定时UDF
提高性能和效率的第一步是衡量 时间在哪里。猪提供轻量级的方法 大致测量不同时间花费的时间 用户定义的函数(UDF)和加载器。只需设置 pig.udf.profile属性为true。这将导致新的计数器 跟踪脚本生成的所有Map-Reduce作业: approx_microsecs测量a中花费的大致时间 UDF和approx_invocations测量大致的次数 调用了UDF。请注意,这可能会产生大量的 计数器(每个UDF两个)。过多的柜台可能会导致贫困 JobTracker的性能,因此请谨慎使用此功能 在测试集群上。
您可以在资源管理器Web UI中查看所有作业计数器。
答案 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;