1.3.3上带有kerberos的hadoop-oozie配置单元操作

4uqofj5v  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(486)

我正在尝试在启用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元存储时遇到问题。
6870[main]info hive.metastore-正在尝试使用uri连接到metastorethrift://10.0.0.242:9083 heart beat heart beat 67016[main]warn hive.metastore-set_ugi()未成功,可能原因:新客户端与旧服务器对话。没有它就继续。org.apache.thrift.transport.ttTransportException:java.net.sockettimeoutexception:read在org.apache.thrift.transport.tiostreamtransport.read(tiostreamtransport)处超时。java:129)在org.apache.thrift.transport.tttransport.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:read在org.apache.thrift.transport.tiostreamtransport.read(tiostreamtransport)处超时。java:129)在org.apache.thrift.transport.tttransport.readall(tttransport。java:84)在org.apache.thrift.protocol.tbinaryprotocol.readall(tbinaryprotocol。java:378)在org.apache.thrift.protocol.tbinaryprotocol.readi32(tbinaryprotocol。java:297)
129339[main]info hive.metastore-正在尝试连接到uri为的metastorethrift://10.0.0.242:9083 heart beat heart beat 189390[main]warn hive.metastore-set_ugi()未成功,可能原因:新客户端与旧服务器对话。没有它就继续。org.apache.thrift.transport.ttTransportException:java.net.sockettimeoutexception:read在org.apache.thrift.transport.tiostreamtransport.read(tiostreamtransport)处超时。java:129)在org.apache.thrift.transport.tttransport.readall(tttransport。java:84)在org.apache.thrift.protocol.tbinaryprotocol.readall(tbinaryprotocol。java:378)在org.apache.thrift.protocol.tbinaryprotocol.readi32(tbinaryprotocol。java:297)
189391[main]info hive.metastore-在下一次连接尝试之前等待1秒钟。190391[main]info hive.metastore-已连接到metastore。heart beat heart beat 250449[main]error org.apache.hadoop.hive.ql.parse.semanticanalyzer-org.apache.hadoop.hive.ql.metadata.hiveexception:无法在org.apache.hadoop.hive.ql.metadata.hive.gettable(hive)上获取表会话\u master。java:953)在org.apache.hadoop.hive.ql.metadata.hive.gettable(hive。java:887)在org.apache.hadoop.hive.ql.parse.semanticanalyzer.getmetadata(semanticanalyzer。java:1083)在org.apache.hadoop.hive.ql.parse.semanticalyzer.getmetadata(semanticalyzer.org.apache.hadoop.hive.ql.parse.semanticalyzer.getmetadata)上。java:1059)
当我禁用kerberos安全性时,工作流工作正常

wkftcu5l

wkftcu5l1#

要使oozie配置单元操作在安全集群上运行,您需要包括 <credentials> 将具有“hcat”类型凭据的节添加到您的工作流。
然后,您的工作流将类似于:

<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文档。

相关问题