Oozie工作状态坚持PREP

时间:2017-12-28 17:28:22

标签: hive sqoop oozie oozie-workflow

我正在尝试运行包含sqoop和hive作业的oozie工作流程但是在Job的运行状态变为PREP并且一段时间后它转换为START_RETRY,如图所示 enter image description here

我的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 job stuck at START action in PREP state找到了类似的问题并尝试解决问题,但不知道该怎么做。

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

我可以通过localhost:50070

在浏览器中访问我的namenode

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

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; 

提前致谢。

0 个答案:

没有答案