当前位置: 首页 > 知识库问答 >
问题:

HDP-1.3.3上带有kerberos的Oozie配置单元操作

庄兴发
2023-03-14

我正在尝试在启用kerberos的环境中执行oozie配置单元操作中的配置单元脚本。

这是我的workflow.xml

<action name="hive-to-hdfs">
    <hive xmlns="uri:oozie:hive-action:0.2">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <job-xml>hive-site.xml</job-xml>
        <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
        </configuration>
        <script>script.q</script>
        <param>HIVE_EXPORT_TIME=${hiveExportTime}</param>
    </hive>
    <ok to="pass"/>
    <error to="fail"/>

我在尝试连接到hive metastore时遇到问题。

6870[main]INFO hive.metastore-正在尝试使用URI连接到metastorethrift://10.0.0.242:9083 心跳心跳67016[main]WARN hive.metastore-set_ugi()未成功,可能原因:新客户端与旧服务器对话。没有它就继续。org.apache.thrift.transport.ttTransportException:java.net.SocketTimeoutException:org.apache.thrift.transport.TIOStreamTransport.Read(TIOStreamTransport.java:129)org.apache.thrift.transport.readAll(tttransport.java:84)org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)上的读取超时位于org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)

67018[main]INFO hive.metastore-在下一次连接尝试之前等待1秒钟。68018[main]INFO hive.metastore-已连接到metastore。心跳心跳128338[main]WARN org.apache.hadoop.hive.metastore.RetryingMetaStoreClient-MetaStoreClient失去连接。正在尝试重新连接。org.apache.thrift.transport.ttTransportException:java.net.SocketTimeoutException:org.apache.thrift.transport.TIOStreamTransport.Read(TIOStreamTransport.java:129)org.apache.thrift.transport.readAll(tttransport.java:84)org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)上的读取超时位于org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)

129339[main]INFOhive.metastore-尝试连接到metastore与URIthrift://10.0.0.242:9083心脏跳动心脏跳动189390[main]警告hive.metastore-set_ugi()不成功,可能原因:新客户端与旧服务器交谈。org.apache.thrift.transport.TTransportExc0019:java.net.SocketTimeoutExc0019:org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:129)在TTransport.read全部(TTransport.java:84)在org.apache.thrift.protocol.TBinaryProtocol.read所有(TBinaryProtocol.java:378)在org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)

189391[main]INFO hive.metastore-在下一次连接尝试之前等待1秒钟。190391[main]INFO hive.metastore-已连接到metastore。心跳心跳250449[main]错误org.apache.hadoop.hive.ql.parse.semanticalyzer-org.apache.hadoop.hive.ql.metadata.HiveException:无法获取org.apache.hadoop.hive.ql.metadata.hive.getTable(hive.java:953)org.apache.hadoop.hive.ql.metadata.hive.getTable(hive.java:887)上的表会话_主机在org.apache.hadoop.hive.ql.parse.semanticalyzer.getMetaData(semanticalyzer.java:1083)在org.apache.hadoop.hive.ql.parse.semanticalyzer.getMetaData(semanticalyzer.java:1059)上

当我禁用kerberos安全性时,工作流工作正常

共有1个答案

胡和煦
2023-03-14

要使您的Oozie Hive操作在安全集群上运行,您需要包含一个

然后,您的工作流程将看起来像:

<workflow-app name='workflow' xmlns='uri:oozie:workflow:0.1'>
    <credentials>
        <credential name='hcat' type='hcat'>
            <property>
                <name>hcat.metastore.uri</name>
                <value>HCAT_URI</value>
            </property>
            <property> 
                <name>hcat.metastore.principal</name>
                <value>HCAT_PRINCIPAL</value>
            </property>
        </credential>
    </credentials>

    <action name="hive-to-hdfs" cred="hcat">
        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <job-xml>hive-site.xml</job-xml>
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
            <script>script.q</script>
            <param>HIVE_EXPORT_TIME=${hiveExportTime}</param>
        </hive>
        <ok to="pass"/>
        <error to="fail"/>
    </action>
</workflow>

还有关于此功能的Oozie文档。

 类似资料:
  • 当我在oozie中执行spark进程时,我有以下错误。找不到数据库。 这是我的火花配置

  • 主要内容:1.介绍,2.Oozie的功能模块介绍,3.Oozie的部署1.介绍 Oozie简介 Oozie英文翻译为:驯象人。一个基于工作流引擎的开源框架,由Cloudera公司贡献给Apache,提供对Hadoop MapReduce、Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。 2.Oozie的功能模块介绍 2.1 模块 Workflow 顺序执行流程节点,支持

  • 我在命令行中使用配置单元导入选项执行了Sqoop作业,我知道问题出在哪里。在命令行中,我可以看到以下信息: 问题在于访问位于本地文件系统上的hive-common-1.2.1000.2.4.2.0-jar。你知道我该怎么办吗?

  • 我试图在Moodle中设置kerberos SSO,但是我得到了一个错误代码:KRB5KDC_ERR_PREAUTH_REQUIRED(25): 1)我已经在Apache上配置了kerberos:安装了kerberos,通过/etc/krb5.cnf进行了配置,并通过kinit命令进行了测试,获得了正确的kerberos票据 2)我已经在Apache中创建了一个虚拟主机,其中包含用于测试的kerb

  • 我的配置单元服务器启用了SSL和Kerberos。但当我尝试使用以下命令通过beeline连接到hiverserver2时: 但得到了同样的错误。 ssl和kerberos互相兼容吗?