2016-12-28 6 views
1
)

Spark python 스크립트를 Oozie 워크 플로로 실행해야하는데 Spark로 스크립트를 로컬에서 테스트했지만 Oozie에 제출하면 ' 왜 작동하지 않는지 알아 내십시오. 나는 Cloudera VM을 사용하고 있으며 색조 대시 보드로 Oozie를 관리하고 있습니다. 여기에 스파크 조치에 대한 워크 플로 구성은 다음과 같습니다Oozie와 Hue로 Spark python 작업 실행 - System.exit 가로 채기 (

Spark Master: local[*] 
Mode: client 
App name: myApp 
Jars/py files: hdfs://localhost:8120/user/cloudera/example.py 
Main class: org.apache.spark 

난 그냥 뭔가를 인쇄하는 간단한 예제를 실행도했지만, 내가 Oozie를 제출하는 모든 스크립트 나에게이 출력 제공 :

>>> Invoking Spark class now >>> 

Intercepting System.exit(1) 

<<< Invocation of Main class completed <<< 

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SparkMain], exit code [1] 

Oozie Launcher failed, finishing Hadoop job gracefully 

Oozie Launcher, uploading action data to HDFS sequence file: hdfs://quickstart.cloudera:8020/user/cloudera/oozie-oozi/0000005-161228161942928-oozie-oozi-W/spark-cc87--spark/action-data.seq 

Oozie Launcher ends 

[편집을 ]

나는 spark master : yarn-cluster를 설정했을 때만 워크 플로가 시작된다는 것을 알았지 만,이 모드에서도 spark 앱이 ACCEPTED 상태 인 동안 95 % 완료지도에서 멈추는 실 컨테이너가 시작됩니다. 스파크 동작을 시작할 수 있도록 얀 메모리 매개 변수를 변경하려고합니다. 살찐는 하트 비트

[SOLVED]

oozie 워크 플로우는 평 파일이 로컬 인 경우에만 시작하고, 색상은 워크 플로우 폴더를 만든 후 수동으로 lib 폴더에 삽입 인쇄 할 수 있습니다. 나는 최선의 해결책은 여전히 ​​스파크 - 제출을 사용하여 쉘 스크립트를 작성하는 것이라고 생각한다.

+0

귀하의 python hdfs 위치가 맞습니까? 'hdfs : // localhost : 8120/user/cloudera/example.py' – mrsrinivas

+0

예전에는 경로를 /user/cloudera/example.py로 설정했고 'file not found'오류가 발생했지만 이제는 콘솔에는 System.exit (1)이 있습니다. –

+0

"lib 폴더"란 지역의 spark python 폴더에있는 lib 폴더를 의미합니까? –

답변

0

표시되는 오류는 oozie 작업의 stdout 파일에서 온 것입니다. stderr 파일을 한 번 확인하고 결과를 여기에 게시 할 수 있습니까? 그러면 문제와 관련된 단서가 더 많을 수 있습니다.

oozie 웹 콘솔을 사용하여 oozie 작업 로그를 추적 할 수 있습니다.

+0

Oozie 콘솔은 다음과 같이 말합니다 : WARN org.apache.oozie.action.hadoop.SparkActionExecutor : SERVER [quickstart.cloudera] USER [cloudera] GROUP [-] TOKEN [] APP [Hour_Fillter] JOB [0000000-161229183653282-oozie-oozi -W] ACTION [0000000-161229183653282-oozie-oozi-W @ spark-cc87] 실행기 오류, 이유 : 자세한 내용이없는 주 클래스 [org.apache.oozie.action.hadoop.SparkMain], 종료 코드 [1] –

+0

아래에서 콘솔 URL에 대한 링크를 볼 수 있습니다. 해당 링크를 클릭하고지도 링크를 클릭 한 다음 작업 이름과 응용 프로그램 시도 로그를 클릭하십시오. 그 로그 안에는 syslog/stdout/stderr 로그의 3 가지 종류가 있습니다. 문제를 찾을 수 있습니다. 너는 나에게 알려주 려 할 수 있니? –

+0

stoud 출력은 위에서 게시 한 것입니다. syslog/stderr는 시스템 종료 1을 말합니다. –

0

스파크 히스토리 (색조는 오른쪽 상단 모서리 옵션 사이에 작업 히스토리 탭이 있습니다. 클릭하면 기록 URL을 얻을 수 있습니다). 일단 EXECUTORS 탭을 체크하고 stdout을 클릭하십시오. 거기에 주요 오류를 볼 수 있습니다. OOzie 로그는 항상 읽을 수 없습니다.

+0

작업 브라우저로 이동하면 succeded 작업이 발견되고 syslog/stdout에는 오류가없는 것 같습니다. 그러나 스파크가 hdfs에 파일을 쓰지 않습니다. 스파크 역사에 가면 아무것도 찾지 못하고 시스템 출구 1에서 뭔가 잘못되었다고 말합니다. –

+0

@AlessioRossotti 좋아, 그러면 너는 hadoop jobhistory (모든 은퇴 한 hadoop을보아야한다. 응용 프로그램) 로그를보고 – sau