Java 如何在Pig中编写自定义文件

Java 如何在Pig中编写自定义文件,java,hadoop,apache-pig,Java,Hadoop,Apache Pig,我在编写猪作业的自定义输出时遇到问题 我基本上想把猪作业执行时间的统计数据写入一个文件 我的猪活儿准备好了,正在干活 现在如何编写执行时间的统计信息 格式:开始时间、结束时间、(结束开始时间)执行时间 请指导我,我应该尝试用pig来做这件事,还是编写一个shell脚本,调用java代码方法来为我做一些事情。。 提前谢谢。。 执行MR作业时,日志中将显示作业的开始时间、结束时间和经过的时间。我不认为用猪来做这件事。但是,如果您了解hadoop计数器,您可以根据需要创建自己的自定义计数器,并实际地将

我在编写猪作业的自定义输出时遇到问题

我基本上想把猪作业执行时间的统计数据写入一个文件 我的猪活儿准备好了,正在干活

现在如何编写执行时间的统计信息 格式:开始时间、结束时间、(结束开始时间)执行时间

请指导我,我应该尝试用pig来做这件事,还是编写一个shell脚本,调用java代码方法来为我做一些事情。。 提前谢谢。。
执行MR作业时,日志中将显示作业的开始时间、结束时间和经过的时间。我不认为用猪来做这件事。但是,如果您了解hadoop计数器,您可以根据需要创建自己的自定义计数器,并实际地将输出写入已创建的文件中


如果您使用的是
Pig版本0.14
,那么Pig脚本所花费的时间将转储在
控制台日志的最后一行中,类似这样

 "Pig script completed in 48 seconds and 454 milliseconds (48454 ms)"
但是,

#!/bin/bash
START_TIME=$(($(date +%s%N)/1000000))

pig -x local mypigscript.pig

END_TIME=$(($(date +%s%N)/1000000))
TOTALMILLSECS=$((($END_TIME-$START_TIME)-1200))
SECS=$((TOTALMILLSECS/1000))
MILLSECS=$((TOTALMILLSECS%1000))

cat > MYOUTPUT.txt <<EOF
STARTTIME:$START_TIME, ENDTIME:$END_TIME, TIMETAKEN:$SECS seconds and $MILLSECS millseconds ($TOTALMILLSECS ms)
EOF
1,2,3
4,5,6
7,8,8
A = LOAD 'input' USING PigStorage(',') AS (f1,f2,f3);
B = GROUP A BY f1;
C = FOREACH B GENERATE group, COUNT(A);
DUMP C;
org.apache.pig.Main - Pig script completed in 48 seconds and 460 milliseconds (48460 ms)
STARTTIME:1427606934083, ENDTIME:1427606983729, TIMETAKEN:48 seconds and 446 millseconds (48446 ms)