2017-09-12 14 views
2

J'ai un problème lors de la configuration d'un coordinateur avec oozie dans un cluster de fils, c'est une étincelle, lorsque je lance le workflow lancé et exécuté correctement par le fil, mais quand j'appelle le même flux de travail à partir d'un coordinator.xml i cette erreur:Erreur de coordinateur de travail Spark in oozie - emr: Impossible de créer un chemin à partir d'une chaîne vide

ERROR org.apache.spark.SparkContext - Error initializing SparkContext. 
java.lang.IllegalArgumentException: Can not create a Path from an empty string 
    at org.apache.hadoop.fs.Path.checkPathArg(Path.java:127) 
    at org.apache.hadoop.fs.Path.<init>(Path.java:135) 
    at org.apache.hadoop.fs.Path.<init>(Path.java:94) 
    at org.apache.spark.deploy.yarn.Client.copyFileToRemote(Client.scala:337) 

et le travail est lancé jamais dans le groupe de fils, on dirait que le fil ne peut pas recevoir le bon chemin .jar de Oozie, une idée?

Voici le coordinator.xml et le workflow.xml simplifiés.

<coordinator-app name="Firebase acquisition process coordinator" frequency="${coord:days(1)}" 
start="${startTime}" end="${endTime}" timezone="UTC" xmlns="uri:oozie:coordinator:0.5"> 
    <controls> 
... 
    </controls> 
    <action> 
     <workflow> 
     <app-path>hdfs://ip-111-11-11-111.us-west- 2.compute.internal:8020/user/hadoop/emr-spark/</app-path> 
     </workflow> 
    </action> 
</coordinator-app> 

<workflow-app name="bbbbbbbbbbbbbbb" xmlns="uri:oozie:workflow:0.5"> 
    <start to="spark-0324"/> 
    <kill name="Kill"> 
     <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
    </kill> 
    <action name="spark-0324"> 
     <spark xmlns="uri:oozie:spark-action:0.2"> 
      <job-tracker>${jobTracker}</job-tracker> 
      <name-node>${nameNode}</name-node> 
      <master>yarn</master> 
      <mode>client</mode> 
       <class>classsxxx.Process</class> 
      <jar>hdfs://ip-111-11-11-111.us-west-2.compute.internal:8020/user/hadoop/emr-spark/lib/jarnamex.jar</jar> 
      <file>lib#lib</file> 
     </spark> 
     <ok to="End"/> 
     <error to="Kill"/> 
    </action> 
    <end name="End"/> 
</workflow-app> 

Je veux dire, quand je fais cela; oozie travail -config ~/emr-spark/job.properties -run ça marche !!, mais quand j'essaie ça; oozie job -run -config ~/emr-coordinator/coordinator.properties Cela ne fonctionne pas.

propriétés d'emploi

oozie.use.system.libpath=true 
send_email=False 
dryrun=False 
nameNode=hdfs://ip-111-11-11-111.us-west-2.compute.internal:8020 
jobTracker=ip-111-11-11-111.us-west-2.compute.internal:8032 
oozie.wf.application.path=/user/hadoop/emr-spark 

propriétés coordinateur

startTime=2017-09-08T19:46Z 
endTime=2030-01-01T06:00Z 
jobTracker=ip-111-11-11-111.us-west-2.compute.internal:8032 
nameNode=hdfs://ip-111-11-11-111.us-west-2.compute.internal:8020 
oozie.coord.application.path=hdfs://ip-111-11-11-111.us-west-2.compute.internal:8020/user/hadoop/emr-coordinator 
oozie.use.system.libpath=true 

Répondre

0

En se référant à des ressources du système de fichiers HDFS il doit être relative. Le chemin complet/absolu est calculé à la demande.

Ensuite, la solution était juste de remplacer: hdfs: //ip-111-11-11-111.us-west-2.compute.internal: 8020/utilisateur/hadoop/emr-spark/workflow.xml avec : /user/hadoop/emr-spark/workflow.xml et hdfs: //ip-111-11-11-111.us-west-2.compute.internal: 8020/utilisateur/hadoop/emr-spark/lib /xxxx.jar avec /user/hadoop/emr-spark/lib/xxxxx.jar

Dans workflow.xml, coordinator.xml ou propriétés.