【问题标题】:How to pass credentials in payload to execute Hive Action via Oozie rest api如何在有效负载中传递凭据以通过 Oozie rest api 执行 Hive 操作
【发布时间】:2015-09-14 12:43:10
【问题描述】:

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

【问题讨论】:

    标签: hadoop hive oozie hadoop-plugins oozie-coordinator


    【解决方案1】:

    第 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
    

    ...

    【讨论】:

    • 感谢@Samson 的回复。但我的问题是如何在没有workflow.xml 的情况下在有效负载中提交凭据。因为有两种方法可以使用oozie rest api 1)使用workflow.xml 2 )通过将所有配置作为有效负载的一部分传递。所以在第二种方法中如何传递配置单元元存储的凭据(元存储主体)
    • 对不起,我对“将所有配置作为有效负载的一部分传递”一无所知。你能指出我的文档吗?
    • 请按照本指南本节前 2 行:oozie.apache.org/docs/4.0.0/…
    • 好的,您的意思是“代理 Hive 作业提交”功能 - 听起来像一个功能有限的丑陋快捷方式。从来没有使用过这些“代理”的东西。对不起:-/
    • 没问题。感谢您的关注。但可能存在远程用户需要将工作流配置作为有效负载传递的有效场景
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2016-09-22
    • 2016-06-21
    • 2013-04-27
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多