我有一个安全的hadoop集群,我想使用oozie rest api运行hive action。我能够通过Oozie rest api在workflow.xml中运行Hive Action。但是如果我尝试不使用workflow.xml来运行相同的hive action(在有效负载中传递配置))由于凭据而失败。是否有任何方法可以在Oozie rest api的有效负载中传递此凭据。

最佳答案

第1步:使用WebHDFSHttpFS REST API将workflow.xml(或whatever.0F253C.xml)脚本(包括凭据定义中的参数)上传到HDFS

    <credentials>
        <credential name='HiveMetastore' type='hcat'>
            <property>
              <name>hcat.metastore.uri</name>
              <value>${hiveMetastoreURI}</value>
            </property>
            <property>
              <name>hcat.metastore.principal</name>
              <value>${hivePrincipal}</value>
            </property>
        </credential>
  </credentials>

...
<action name="DummyHive" cred="HiveMetastore">
    <hive xmlns="uri:oozie:hive-action:0.3">

...

步骤2:使用该XML脚本以及参数的实际值提交工作流
oozie.wf.application.path=/user/johndoe/hic_sunt_leones/whatever.0F253C.xml
hiveMetastoreURI=thrift://dummy.nsa.gov:9083
hivePrincipal=hive/_HOST@HADOOP.NSA.GOV

...

关于hadoop - 如何在有效负载中传递凭据以通过Oozie Rest API执行Hive Action,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32565126/

10-16 03:31