Apache spark Oozie SparkAction失败

Apache spark Oozie SparkAction失败,apache-spark,oozie,hortonworks-data-platform,Apache Spark,Oozie,Hortonworks Data Platform,在HDP2.3.4中,我试图测试Oozie的行为 我编写的Spark(1.5.2)应用程序非常简单,仅用于测试Oozie(4.2.0): 此应用程序在纱线客户端和纱线簇模式下使用spark submit时工作 我的job.properties和workflow.xml文件如下: 作业属性 nameNode=hdfs://myhost.com:8020 jobTracker=myhost.com:8032 queueName=default projectRoot=user/${user.name

在HDP2.3.4中,我试图测试Oozie的行为

我编写的Spark(1.5.2)应用程序非常简单,仅用于测试Oozie(4.2.0):

此应用程序在纱线客户端和纱线簇模式下使用
spark submit
时工作

我的
job.properties
workflow.xml
文件如下:

作业属性

nameNode=hdfs://myhost.com:8020
jobTracker=myhost.com:8032
queueName=default
projectRoot=user/${user.name}/workflows/sparkaction-test

master=yarn-cluster
mode=cluster
class=com.myCompany.SparkActionTest
hiveSite=hive-site.xml
jars=${nameNode}/${projectRoot}/lib/sparkaction-test_2.10-1.0.jar


oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/${projectRoot}
spark.yarn.historyServer.address=http://myhost.com:18080/
spark.eventLog.dir=${nameNode}/user/spark/applicationHistory
spark.eventLog.enabled=true
workflow.xml

<workflow-app name="spark-test-wf" xmlns="uri:oozie:workflow:0.4">
    <start to="spark-test"/>
    <action name="spark-test">
        <spark xmlns="uri:oozie:spark-action:0.1">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.compress.map.output</name>
                    <value>true</value>
                </property>
            </configuration>
            <master>${master}</master>
            <mode>${mode}</mode>
            <name>Testing Spark Action</name>
            <class>${class}</class>
        <jar>${jars}</jar>
            <spark-opts>--files ${hiveSite}</spark-opts>
         </spark>
        <ok to="end"/>
        <error to="errorcleanup" />
    </action>

    <kill name="errorcleanup">
      <message>Spark Test WF failed. [${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name ="end"/>
</workflow-app>
不幸的是,Oozie工作流失败,并显示以下错误消息:

工作流在处于运行状态大约20分钟后被终止,错误消息如下:从host.xxx.com/x.x.x.x调用0.0.0.0:8032失败,连接异常:java.net.ConnectException:连接被拒绝;有关更多详细信息,请参阅:


我可以ping 0.0.0.0,但不能telnet端口8032。

我最终解决了这个问题,将资源管理器端口(
warn.resourcemanager.address
在Ambari Thread configs中的advanced Thread site settings中)从8050(Hortonworks默认值)更改为8032。Oozie似乎只在8032端口上用于SparkAction

您能列出哪些是HDFS、Share lib Location中用于SPARK的罐子吗。?在共享库中添加spark-assembly-1.4.1-hadoopx.x.x可能有问题。@karthik我将spark库中的所有JAR复制到Oozie共享库中。然而,我们的HDP已经损坏,需要重新格式化,所以我正在开发一个新版本的HDP(2.3.4)。我不再遇到以前的问题,但现在出现了不同的错误。请参阅我上面的更新。在jobTracker中,您指定的端口为8050,这是在侦听resourcemanager吗?另一方面,问题可能是升级sharelib包似乎是版本不匹配。默认情况下,oozie将执行“SPARK-SUBMIT”。或上述示例所需的Tachyon jar。@karthik是的,我定义的jobTracker与在Thread-site.xml中找到的Thread.resourcemanager.address匹配,因此我不太清楚为什么日志显示它试图连接到端口8032。至于sharelib包,我如何检查版本不匹配?不过,我确实确保,当我使用sbt构建应用程序时,我在
build.sbt
中将spark依赖项标记为“提供”,并使用了相同的Scala版本。至于tachyon jar,我确实在sharelib中看到了
tachyon-0.5.0.jar
tachyon-client-0.5.0.jar
。我正在尝试实现您在问题中提到的功能,但我面临着不同的错误。
JA008:文件不存在:hdfs://{namenodehost}:8020/user/oozie/share/lib/lib\u 2016062220957/spark/jets3t-0.7.1.jar
。我删除了您提到的所有默认spark共享库jar,并将spark库移动到Oozie共享库中。这是我的迫切需要。在这方面你能帮忙吗?我重新启动了Thread,现在我得到了不同的错误
java.lang.ClassNotFoundException:Class org.apache.oozie.action.hadoop.SparkMain未找到
<workflow-app name="spark-test-wf" xmlns="uri:oozie:workflow:0.4">
    <start to="spark-test"/>
    <action name="spark-test">
        <spark xmlns="uri:oozie:spark-action:0.1">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.compress.map.output</name>
                    <value>true</value>
                </property>
            </configuration>
            <master>${master}</master>
            <mode>${mode}</mode>
            <name>Testing Spark Action</name>
            <class>${class}</class>
        <jar>${jars}</jar>
            <spark-opts>--files ${hiveSite}</spark-opts>
         </spark>
        <ok to="end"/>
        <error to="errorcleanup" />
    </action>

    <kill name="errorcleanup">
      <message>Spark Test WF failed. [${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name ="end"/>
</workflow-app>
datanucleus-api-jdo-3.2.6.jar
datanucleus-core-3.2.10.jar
datanucleus-rdbms-3.2.9.jar
oozie-sharelib-spark-4.2.0.2.3.4.0-3485.jar
spark-1.5.2.2.3.4.0-3485-yarn-shuffle.jar
spark-assembly-1.5.2.2.3.4.0-3485-hadoop2.7.1.2.3.4.0-3485.jar
spark-examples-1.5.2.2.3.4.0-3485-hadoop2.7.1.2.3.4.0-3485.jar