无法在oozie安排工作。创建HiveContext时出错

时间:2017-08-08 14:30:15

标签: apache-spark hive spark-dataframe oozie oozie-workflow

尝试从oozie运行一个火花工作。下面是我试图运行的代码。

SparkConf conf = getConf(appName);
JavaSparkContext sc = new JavaSparkContext(conf);
HiveContext hiveContext = new HiveContext(sc);

我收到以下错误:

JOB[0000000-170808082825775-oozie-oozi-W] ACTION[0000000-170808082825775-oozie-oozi-W@Sample-node] Launcher exception: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)

这是我的工作流程xml文件

<workflow-app name="DataSampling" xmlns="uri:oozie:workflow:0.4">
    <start to='Sample-node'/>
    <action name="Sample-node">
        <spark xmlns="uri:oozie:spark-action:0.1">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
                        <configuration>
                                <property>
                                        <name>tez.lib.uris</name>
                                        <value>/hdp/apps/2.5.3.0-37/tez/tez.tar.gz</value>
                                </property>
                        </configuration>
            <master>${master}</master>
            <mode>${mode}</mode>
            <name>Sample class on Oozie - Sampling</name>
            <class>Sampling</class>
            <jar>/path/jarfile.jar</jar>
            <arg>${numEventsPerPattern}</arg>
            <arg>${eventdate}</arg>
            <arg>${eventtype}</arg>
            <arg>${user}</arg>
        </spark>
        <ok to="end"/>
        <error to="fail"/>
    </action>
   <kill name="fail">
        <message>Workflow failed, error
            message[${wf:errorMessage(wf:lastErrorNode())}]
        </message>
    </kill>
    <end name='end'/>
</workflow-app>

我正在使用Hortonworks Data Platform 2.5。如果我在类路径中遗漏了某些东西,请任何人都可以帮忙。

提前致谢。

1 个答案:

答案 0 :(得分:0)

最后它奏效了。 Oozie能够创建HiveContext。

问题在于classpath。删除hdfs中的文件夹/user/oozie/share/lib

core-site.xml下的Ambari中更新以下属性 将以下属性设置为*

hadoop.proxyuser.oozie.groups
hadoop.proxyuser.oozie.hosts
hadoop.proxyuser.root.groups
hadoop.proxyuser.root.hosts

使用以下命令创建新的共享库:

/usr/hdp/current/oozie-client/bin/oozie-setup.sh sharelib create -fs /user/oozie/share/lib

重新启动oozie服务

应使用oozie用户

完成以上两个步骤

在工作流程xml文件中添加了以下标记

<spark-opts>--num-executors 6 --driver-memory 8g --executor-memory 6g</spark-opts>

hdfs用户身份运行oozie作业。