2017-09-12 11 views
2

원사 클러스터에서 oozie로 코디네이터를 구성하는 데 문제가 있습니다. 작업이 콘솔에서 작업 흐름을 실행할 때 스파크 작업입니다. 시작과 실을 제대로 실행,하지만 난이 coordinator.xml에서 같은 워크 플로우를 호출 할 때이 오류가 :oozie 코디네이터 오류가 발생했습니다. - emr : 빈 문자열에서 경로를 생성 할 수 없습니다.

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) 

그리고 결코 실 클러스터에 출시되지 않은 작업을 실을받을 수없는 것 같습니다 ozie에서 정확한 경로. 어떤 생각?

여기서 coordinator.xml과 workflow.xml이 단순화되었습니다.

<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> 

나는 이것을 할 때; oozie job -config ~/emr-spark/job.properties -run 작동합니다 !!하지만 이것을 시도 할 때; ozie 작업 -run -config ~/emr-coordinator/coordinator.properties 작동하지 않습니다. 그것은 단지 상대해야하는 HDFS 파일 시스템에서 자원 참조

작업 속성

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 

코디네이터 속성

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 

답변

0

. 전체/절대 경로는 필요에 따라 계산됩니다.

다음 솔루션은 다음과 같이 바뀌 었습니다. hdfs : //ip-111-11-11-111.us-west-2.compute.internal : 8020/user/hadoop/emr-spark/workflow.xml with : /user/hadoop/emr-spark/workflow.xml 및 hdfs : //ip-111-11-11-111.us-west-2.compute.internal : 8020/user/hadoop/emr-spark/lib /xxxx.jar with /user/hadoop/emr-spark/lib/xxxxx.jar

workflow.xml, coordinator.xml 또는 특성에서.