2017-03-08 2 views
0

Ich führe meinen mapreduce Job als Java-Aktion von Oozie Workflow. Wenn ich meine mapreduce in meinem hadoop Cluster laufen läuft es erfolgreich, aber wenn ich gleiches Glas aus Oozie laufe Workflow es mein Workflow meine Ausnahme Dies ist seinHBase Verbindung in MapReduce läuft von Oozie Workflow schlägt fehl

werfen .xml

<workflow-app name="HBaseToFileDriver" xmlns="uri:oozie:workflow:0.1"> 

    <start to="mapReduceAction"/> 
     <action name="mapReduceAction"> 
       <java> 
         <job-tracker>${jobTracker}</job-tracker> 
         <name-node>${nameNode}</name-node> 
         <prepare> 
           <delete path="${outputDir}"/> 
         </prepare> 

         <configuration> 
           <property> 
             <name>mapred.mapper.new-api</name> 
             <value>true</value> 
           </property> 
           <property> 
             <name>mapred.reducer.new-api</name> 
             <value>true</value> 
           </property> 
           <property> 
             <name>oozie.libpath</name> 
             <value>${appPath}/lib</value> 
           </property> 
           <property> 
            <name>mapreduce.job.queuename</name> 
            <value>root.fricadev</value> 
           </property> 

          </configuration> 
           <main-class>com.thomsonretuers.hbase.HBaseToFileDriver</main-class> 

            <arg>fricadev:FinancialLineItem</arg> 


           <capture-output/> 
       </java> 
       <ok to="end"/> 
       <error to="killJob"/> 
     </action> 
     <kill name="killJob"> 
      <message>"Killed job due to error: ${wf:errorMessage(wf:lastErrorNode())}"</message> 
     </kill> 
    <end name="end" /> 
</workflow-app> 

Im Folgenden finden Sie, wenn i Siehe die Protokolle im YARN. obwohl es als erfolgreich angezeigt wird, aber Ausgabedateien nicht generiert werden.

+0

Haben Sie versucht, die http://stackoverflow.com/questions/33829017/gssexception-no-valid-credentials-provided-mechanism-level-failed-to-find-any zu überprüfen. Wie haben Sie die Chiffrierschlüsseldatei mit kutil erzeugt? –

+0

@SUDARSHAN Wo bekommen Sie diese Ausnahme? Ist es der Teil der Java-Aktionsausnahme? Können Sie das Protokoll erweitern? – Alex

+0

@DeepanRam ja mit kutil .Bitte nicht wissen, wo die generierte Schlüssel Registerkarte Datei in Oozie Workflow dir. – SUDARSHAN

Antwort

0

Haben Sie schauen in Oozie Java Action

IMPORTANT: In order for a Java action to succeed on a secure cluster, it must propagate the Hadoop delegation token like in the following code snippet (this is benign on non-secure clusters): 

// propagate delegation related props from launcher job to MR job 
if (System.getenv("HADOOP_TOKEN_FILE_LOCATION") != null) { 
    jobConf.set("mapreduce.job.credentials.binary", System.getenv("HADOOP_TOKEN_FILE_LOCATION")); 
} 

Sie HADOOP_TOKEN_FILE_LOCATION von System env Variable erhalten müssen und mapreduce.job.credentials.binary auf die Eigenschaft festgelegt.

HADOOP_TOKEN_FILE_LOCATION wird zur Laufzeit von oozie gesetzt.

+0

und nachdem ich das hinzugefügt habe, bekomme ich eine Warnung in map reduzieren wie Der Wert von property mapreduce.job.credentials.binary darf nicht null sein – SUDARSHAN

+0

So habe ich gesetzt, bekomme aber immer noch den selben Fehler if (System.getenv ("HADOOP_TOKEN_FILE_LOCATION") ! = null) {hbaseConf.set ("mapreduce.job.credentials.binary", System.getenv ("HADOOP_TOKEN_FILE_LOCATION")); – SUDARSHAN

+0

Auch wird dies in hadoop2 sowie – SUDARSHAN

Verwandte Themen