2016-03-02 96 views
0

我是OOZIE的新手,并试图使用OOZIE工作流程运行PIG脚本。下面是猪脚本命名为first.pigOOZIE:PIG作业执行失败

A = LOAD '/user/jas/pigip' USING PigStorage(','); 
B = FOREACH A GENERATE $0; 
STORE B INTO '/user/jas/pigop'; 

下面是workflow.xml

<workflow-app xmlns="uri:oozie:workflow:0.2" name="PIGACTION"> 
<start to="pig-node"/> 
<action name="pig-node"> 
    <pig> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <script>first.pig</script> 
    </pig> 
    <ok to="end"/> 
    <error to="fail"/> 
</action> 
    <kill name="fail"> 
    <message>Pig Script failed!!!</message> 
    </kill> 
    <end name="end"/> 
</workflow-app> 

下面是job.properties

nameNode=hdfs://localhost:8020 
jobTracker=localhost:8021 
queueName=default 
oozie.libpath=/user/oozie/shared/lib 
oozie.wf.application.path=${nameNode}/user/my/pigact 

对于运行的工作流程:

1)我上传了first.pigworkflow.xml在位置/user/my/pigact

2)输入文件(一个简单的CSV)上传在路径/user/jas/pigip

对于运行工作,下面是我所使用的命令:

oozie job -oozie http://localhost:11000/oozie -config job.properties -auth SIMPLE -run

的工作已提交,然后杀死。下面是Job Log

2016-03-02 11:35:01,463 INFO ActionStartXCommand:539 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]:start:] Start action [[email protected]:start:] with user-retry state : userRetryCount [0], userRetryMax [0], userRetryInterval [10] 
2016-03-02 11:35:01,463 WARN ActionStartXCommand:542 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]:start:] [***[email protected]:start:***]Action status=DONE 
2016-03-02 11:35:01,464 WARN ActionStartXCommand:542 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]:start:] [***[email protected]:start:***]Action updated in DB! 
2016-03-02 11:35:01,524 INFO ActionStartXCommand:539 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] Start action [[email protected]] with user-retry state : userRetryCount [0], userRetryMax [0], userRetryInterval [10] 
2016-03-02 11:35:02,411 WARN PigActionExecutor:542 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] credentials is null for the action 
2016-03-02 11:35:04,170 INFO PigActionExecutor:539 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] checking action, external ID [job_201603012236_0015] status [RUNNING] 
2016-03-02 11:35:04,293 WARN ActionStartXCommand:542 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] [***[email protected]***]Action status=RUNNING 
2016-03-02 11:35:04,295 WARN ActionStartXCommand:542 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] [***[email protected]***]Action updated in DB! 
2016-03-02 11:35:12,210 INFO CallbackServlet:539 - USER[-] GROUP[-] TOKEN[-] APP[-] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] callback for action [[email protected]] 
2016-03-02 11:35:12,409 INFO PigActionExecutor:539 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] action completed, external ID [job_201603012236_0015] 
2016-03-02 11:35:12,434 WARN PigActionExecutor:542 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.PigMain], exit code [2] 
2016-03-02 11:35:12,705 INFO ActionEndXCommand:539 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] ERROR is considered as FAILED for SLA 
2016-03-02 11:35:12,794 INFO ActionStartXCommand:539 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] Start action [[email protected]] with user-retry state : userRetryCount [0], userRetryMax [0], userRetryInterval [10] 
2016-03-02 11:35:12,795 WARN ActionStartXCommand:542 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] [***[email protected]***]Action status=DONE 
2016-03-02 11:35:12,795 WARN ActionStartXCommand:542 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[[email protected]] [***[email protected]***]Action updated in DB! 
2016-03-02 11:35:12,904 WARN CoordActionUpdateXCommand:542 - USER[training] GROUP[-] TOKEN[] APP[PIGACTION] JOB[0000009-160301223816814-oozie-oozi-W] ACTION[-] E1100: Command precondition does not hold before execution, [, coord action is null], Error Code: E1100 

请建议什么地方错了,我无法识别的问题。

EDIT

捕捉快照:

enter image description here

enter image description here

enter image description here

enter image description here

来自第3张图像(突出显示)的控制台URL显示第4张图像。请建议。

这是我得到的日志:

+0

这可以帮助你http://stackoverflow.com/questions/15336923/problems-with-starting-oozie-workflow –

+0

我之前检查过这个帖子,但没用:我可以运行一个'OOZIE'工作流程与'MapReduce',因此启动'OOZIE'服务器不应该是一个问题。我正面临着这个问题'PIG'和'HIVE'。请建议。 – user182944

回答

2

看着QueryParserStringStream.java,它扩展了ANTLRStringStream。现在,如果antlr丢失,你应该得到ClassNotFoundError而不是NoSuchFiledError。我能想到的唯一可能的原因是,在运行时在类路径中存在不同版本的antlr,这导致了此错误。

+0

从oozie共享库(从HDFS)中删除重复的jar文件并使用正确版本的antlr jar文件为我解决了这个问题。再次感谢 !!! – user182944

0

在执行脚本的猪出现错误。这里是在日志中的错误:

2016年3月2日11:35:12434 WARN PigActionExecutor:542 - USER [训练]甲基[ - ] TOKEN [] APP [PIGACTION] JOB [0000009-160301223816814- oozie-oozi-W]动作[0000009-160301223816814-oozie-oozi-W @ pig-node] Launcher ERROR,reason:Main class [org.apache.oozie.action.hadoop.PigMain],exit code [2]

我在您的脚本中看不到任何明显的问题,您是否可以在MapReduce模式下运行脚本并检查是否有任何错误?

pig -x mapreduce first.pig

+0

我已经做到了,脚本运行良好。 – user182944

+0

是否在您的设置中作为PIG的默认执行引擎启用了tez? – rahulbmv

+0

没有tez尚未启用。是否需要解决这个问题?要添加更多信息,我正在Cloudera集群上运行它,并且我也遇到了同样的HIVE作业错误。 – user182944

1

,你所看到的错误是Oozie的发射映射器工作,这是背着你猪脚本来收集资源,实际上在集群上运行它的失败结果。它基本上模仿你的命令行grunt功能。

如果您的oozie Web控制台可用,您可以单击工作流作业中的杀死操作,这会向您显示作业URL。作业URL实际上指向您的oozie启动器映射程序作业,您可以检查其日志以了解出错的原因。

+0

当你点击杀死的工作流程时,你应该能够看到出错的实际猪动作。如果你点击错误的猪行为,你应该能够看到一个'Console URL',它将打开启动器作业 – rahulbmv

+0

我无法看到'Console URL'选项卡,我正在使用'cloudera 4.1.1' 。另外,我已经在本地运行了猪脚本,它运行良好,因此猪脚本没有问题。当我尝试运行带有HIVE作业的OOZIE工作流时,出现同样的错误,使用OOZIE工作流程,MapReduce作业正常运行。请建议。 – user182944

+0

你可以发布杀死作业的截图吗?一旦你点击失败的行动,你应该能够看到三个标签 – rahulbmv