0

我正在尝试运行包含 sqoop 和 hive 作业的 oozie 工作流,但是在 Job 的运行状态变为 PREP 后,它转换为 START_RETRY,如图所示 在此处输入图像描述

我的 workflow.xml 文件是

<workflow-app xmlns="uri:oozie:workflow:0.5" name="simpleWF">

    <start to="sqoop-import-A"/>
        <action name="sqoop-import-A">
            <sqoop xmlns="uri:oozie:sqoop-action:0.2">
                <job-tracker>${jobTracker}</job-tracker>
                <name-node>${nameNode}</name-node>
                <configuration>
                    <property>
                       <name>mapred.job.queue.name</name>
                       <value>default</value>
                    </property>
                </configuration>
                <command>import --connect 
                   jdbc:mysql://quickstart.cloudera/movie_lens --username 
                   root --password cloudera --table ratings --target-dir 
                   /user/cloudera/Movie_AY377330 -m 1</command>
           </sqoop>
           <ok to="sqoop-import-B"/>
           <error to="fail"/>
       </action>
       <action name="sqoop-import-B">
           <sqoop xmlns="uri:oozie:sqoop-action:0.2">
                <job-tracker>${jobTracker}</job-tracker>
                <name-node>${nameNode}</name-node>
                <configuration>
                   <property>
                        <name>mapred.job.queue.name</name>
                        <value>default</value>
                   </property>
                </configuration>
                <command>import --connect 
                jdbc:mysql://quickstart.cloudera/movie_lens --username root 
                --password cloudera --table movie --target-dir 
               /user/cloudera/Movie_AY3773301 -m 1</command>
            </sqoop>
            <ok to="sqoop-import-C"/>
            <error to="fail"/>
        </action>
        <action name="sqoop-import-C">
            <sqoop xmlns="uri:oozie:sqoop-action:0.2">
                 <job-tracker>${jobTracker}</job-tracker>
                 <name-node>${nameNode}</name-node>
                  <configuration>
                     <property>
                         <name>mapred.job.queue.name</name>
                         <value>default</value>
                     </property>
                  </configuration>
                  <command>sqoop import --connect 
                  jdbc:mysql://quickstart.cloudera/movie_lens --username 
                  root --password cloudera --table tags --target-dir 
                  /user/cloudera/Movie_AY3773302 -m 1</command>
             </sqoop>
             <ok to="hive-node"/>
             <error to="fail"/>
        </action>

        <action name="hive-node">
            <hive xmlns="uri:oozie:hive-action:0.2">
                <job-tracker>${jobTracker}</job-tracker>
                <name-node>${nameNode}</name-node>
                <job-xml>hive-site.xml</job-xml>
                <configuration>
                       <property>
                             <name>mapred.job.queue.name</name>
                             <value>${queueName}</value>
                       </property>              
                </configuration>
                <script>hive1.hql</script>
            </hive>
            <ok to="hive-node-2"/>
            <error to="fail"/>
     </action>
     <action name="hive-node-2">
           <hive xmlns="uri:oozie:hive-action:0.2">
           <job-tracker>${jobTracker}</job-tracker>
           <name-node>${nameNode}</name-node>
           <job-xml>hive-site.xml</job-xml>
           <configuration>
                <property>
                     <name>mapred.job.queue.name</name>
                     <value>${queueName}</value>
                </property>              
           </configuration>
           <script>hive2.hql</script>
           <param>OUTPUT_PATH1=${outputPath1}</param>
      </hive>
      <ok to="hive-node-3"/>
      <error to="fail"/>
   </action>
   <action name="hive-node-3">
       <hive xmlns="uri:oozie:hive-action:0.2">
       <job-tracker>${jobTracker}</job-tracker>
       <name-node>${nameNode}</name-node>        
       <job-xml>hive-site.xml</job-xml>
       <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>              
        </configuration>
        <script>hive3.hql</script>
        <param>OUTPUT_PATH2=${outputPath2}</param>
     </hive>
    <ok to="end"/>
    <error to="fail"/>
</action>

<kill name="fail">
    <message>error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>

<end name="end"/>

我的 job.properties 文件是

nameNode=hdfs://localhost:8020
jobTracker=localhost:50300
queueName=default
exampleRoot=example
folder= test
outputPath1=
outputPath2=
oozie.use.system.libpath=true
oozie.libpath=/user/oozie/share/lib
oozie.wf.application.path=${nameNode}/user/${user.name}/${exampleRoot}

我在Oozie 工作中发现了一个类似的问题,卡在 PREP 状态下的 START 操作中, 并尝试解决问题,但不知道该怎么做。

我知道我的 namenode 或 jobtracker 地址有问题。

我可以通过 localhost:50070 在浏览器中访问我的名称节点

一段时间后,作业因错误而暂停

JA009: Failed on local exception: 
com.google.protobuf.InvalidProtocolBufferException: Protocol message end-
group tag did not match expected tag.; Host Details : local host is: 
"quickstart.cloudera/127.0.0.1"; destination host is: "localhost":8088; 

提前致谢。

4

0 回答 0