如何通过hive2 oozie动作连接到hive服务器2?

问题描述 投票:0回答:1

我无法通过oozie的Hive2动作连接到Hive。 jdbcUrl已启用zooKeeper服务发现。我的数据平台是Hortonworks 2.6。

最初,我试图通过python脚本连接到beelne,并且该脚本由oozie的shell动作执行。但是无法做到。所以我尝试使用hive2操作来代替。但是,即使那样也不起作用。直线的jdbcURL没有SSL。它启用了zooKeeper服务发现。

<workflow-app xmlns="uri:oozie:workflow:0.3" name="hive2-wf">
<start to="hive2-node"/>
<action name="hive2-node">
    <hive2 xmlns="uri:oozie:hive2-action:0.2">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
        </configuration>
        <jdbc-url>${jdbcURL}</jdbc-url>
        <script>table_create.hql</script>
    </hive2>
    <ok to="end"/>
    <error to="fail"/>
</action>

<kill name="fail">
    <message>Hive2 (Beeline) action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>

我面临的错误是“ org.apache.hive.jdbc.HiveConnection:打开会话时出错”。

apache-zookeeper oozie hortonworks-data-platform beeline
1个回答
0
投票

我们需要更多信息。您可以共享oozie属性文件吗?也许您需要定义oozie.action.sharelib.for.hive,类似oozie.action.sharelib.for.hive = hive,hatalog。你尝试过吗?还要确保在相应的sharelib中有hive-site.xml,或者甚至可以尝试将其保持在将工作流xml放在hdfs位置内的同一顺序中。参见下面的示例

nameNode=hdfs://sandbox.hortonworks.com:8020
jobTracker=sandbox.hortonworks.com:8050
queueName=defaultappPath=${nameNode}/<HDFS_path_where_workflow.xml_file>
oozie.use.system.libpath=true
oozie.libpath=${nameNode}/user/oozie/share/lib/lib_20161025075203/
oozie.wf.application.path=${appPath}
#SHARELIB PATH FOR ACTION#
oozie.action.sharelib.for.hive=hive,hcatalog,sqoop
© www.soinside.com 2019 - 2024. All rights reserved.