클래스 경로의로드 순서 때문에 oozie 워크 플로 실행 프로그램이 실패 할 수 있습니다 (KILLED 상태). SparkSubmit에서 ivy 2.4.0의 메소드 호출이 있지만이 특정 메소드는 ivy 2.0.0-rc2에 없습니다. 워크 플로우 프로세스는 대개 대부분의 시간당 명목 시간 동안 정상적으로 실행되지만, 아이비 2.4 대신 ivy 2.0이로드되기 때문에 실행이 자주 실패합니다.Oozie 's Spark Submit는 아이비를 사용합니다. 2.4 CDH에서 메소드가 누락되었습니다. 5.9.2
2017-10-31 20:37:30,339 WARN org.apache.oozie.action.hadoop.SparkActionExecutor: SERVER[xxxx-oozie-lv-102.xxx.net] USER[xxxxx] GROUP[-] TOKEN[] APP[xxxx-proc-oozie] JOB[0143924-170929213137940-oozie-oozi-W] ACTION[[email protected]] Launcher exception: org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor.setDefaultConf(Ljava/lang/String;)V
java.lang.NoSuchMethodError: org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor.setDefaultConf(Ljava/lang/String;)V
at org.apache.spark.deploy.SparkSubmitUtils$.resolveMavenCoordinates(SparkSubmit.scala:1054)
at org.apache.spark.deploy.SparkSubmit$.prepareSubmitEnvironment(SparkSubmit.scala:287)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:154)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
at org.apache.oozie.action.hadoop.SparkMain.runSpark(SparkMain.java:264)
at org.apache.oozie.action.hadoop.SparkMain.run(SparkMain.java:214)
at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:60)
at org.apache.oozie.action.hadoop.SparkMain.main(SparkMain.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:233)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1912)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
클라우 데라 분산 하둡 아이비 2.0.0-RC2가 들어 보인다,하지만 SparkSubmit 아이비 버전 2.4.0을 필요로하는 것 같다 실패하면, (검열) oozie 런처 로그는이 스택 호출을 보여줍니다. 아이비 2.4를 내 항아리에 넣고 2.0을 제외 시키려고했지만, 이것은 내 프로세스가 시작되기 전이라 할 수 있습니다 (어쩌면 약간 어리석은 일입니다). 나는 2.4.0 버전이 oozie 로딩 프로세스에서 어떤 우선 순위를 갖도록 강제해야하고, oozie.launcher.mapreduce.user.classpath.first
을 true 또는 false로 시도 했어야한다고 생각합니다. - 어떤 경우 에든, 작업 속성 파일은 /를 포함해야합니다 :
oozie.libpath=${nameNode}/user/spark/share/XXXX-spark/
oozie.use.system.libpath=true
는 참고 : LIBPATH에 담쟁이 덩굴을 제거하면 위의 차이를 보이지 않았다.
It's likely that the workflow needs an extra flag or ... like this:
<configuration>
<property>
<name>oozie.launcher.mapreduce.map.java.opts</name>
<value>-verbose</value>
</property>
</configuration>
클러스터를 관리하는 팀 (SRE)은 CDH 5.9.2와 함께 원래의 병을 사용하기를 원합니다.
CDH를 그대로 유지하기 위해 SRE 요구 사항을 충족시키는 방식으로 workflow.xml, 작업 속성, 빌드 또는 ...을 변경하여 spark-submit에서 ivy 2.4 (2.0 제외)를 사용하도록 강제 설정하려면 어떻게해야합니까? 캐시를 무효화하여이를 해결할 수 있습니까?
하면 어떤 경로에 항아리 나 ...
당신은 (즉, 단지 Oozie 런처 컨테이너) 또는'실 - client' 모드에서'local' 모드에서 스파크 작업을 실행합니까? 'yarn-client'의 경우 드라이버 나 executor (Oozie libpath 나'oozie.launcher' props를 상속받지 않습니다)에서 예외가 발생합니까? –
https://stackoverflow.com/questions/42689304/spark-job-that-use-hive-context-failing-in-oozie –
첫 번째로와 유사 :이 문제는 community.cloudera.com/t5/Batch- 처리 및 워크 플로우/.... 2nd @SamsonScharfrichter ...이 문제는 기본 클라이언트 모드를 사용하는 원사 - 클러스터 모드를 사용하여 발생하며 워크 플로 로그에 표시됩니다. 나는 당신의 질문의 두 번째 부분에 대답 할 지 모르겠습니다. 나는 링크에서 제안을 시도했지만 여전히 17 번 실행하지 못했습니다. 전형적인 실패입니다. – codeaperature