oozie工作流程提交sh以启动spark2作业的问题

时间:2018-06-14 10:16:04

标签: oozie cloudera-cdh apache-spark-2.0

让我解释一下这个问题,它让我发疯了......

我有一个我想从oozie工作流程提交的spark2程序。

因为默认情况下spark2无法直接从oozie提交,所以我创建了一个带有spark2-submit语句的sh来执行spark2作业。

如果我从控制台运行它,它可以完美运行。但是,当我从oozie工作流程运行它时,没有办法让它工作,但更糟糕的是我看不到执行返回的日志上的明确错误。

这些是我正在使用的文件:

thintest.sh:

spark2-submit --master yarn --class main hdfs:///home/cloudera/thintest/thintest-assembly-0.1.jar

job.properties

oozie.use.system.libpath=True
dryrun=False
nameNode=hdfs://quickstart.cloudera:8020
jobTracker=quickstart.cloudera:8032
security_enabled=False
hiveXml=/etc/hive/conf/hive-site.xml
appName=thintest
appPath=${nameNode}/home/cloudera/thintest
oozie.wf.application.path=${appPath}/workflow.xml
shellPath=${appPath}/thintest.sh

workflow.xml

<?xml version="1.0" encoding="UTF-8"?>
<workflow-app name="thintest" xmlns="uri:oozie:workflow:0.5">

<start to="shell"/>

  <action name="shell">
    <shell xmlns="uri:oozie:shell-action:0.1">

      <job-tracker>${jobTracker}</job-tracker>
      <name-node>${nameNode}</name-node>

      <exec>${shellPath}</exec>
      <env-var>HADOOP_USER_NAME=${wf:user()}</env-var>
      <file>${shellPath}#thintest.sh</file> 

    </shell>

    <ok to="end"/>
    <error to="kill"/>

  </action>

  <kill name="kill">
    <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
  </kill>

  <end name="end"/>
</workflow-app>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

Oozie有一个spark-2配置文件,Oozie的Spark动作在用Oozie构建之后完美运行。

我不建议黑客行动,因为它迟早会变成噩梦。