【问题标题】:How to propagate delegation token in Oozie ssh action如何在 Oozie ssh 操作中传播委托令牌
【发布时间】:2015-06-23 01:07:52
【问题描述】:

我有一个执行一堆 hadoop fs -get 合并命令的 oozie shell 操作,它当前失败是因为:

[由 GSSException 引起:未提供有效凭据(机制级别:未能找到任何 Kerberos tgt)]

在 oozie 文档中,它说明了如何为 Java 操作执行此操作:这里

重要提示:为了使 Java 操作在安全集群上成功,它必须像以下代码 sn-p 一样传播 Hadoop 委托令牌(这在非安全集群上是良性的):

// 将委托相关的道具从启动器作业传播到 MR 作业 如果(System.getenv(“HADOOP_TOKEN_FILE_LOCATION”)!= null){ jobConf.set("mapreduce.job.credentials.binary", System.getenv("HADOOP_TOKEN_FILE_LOCATION")); }

我如何为壳牌做到这一点?当我尝试回显 $HADOOP_TOKEN_FILE_LOCATION 时,它什么也不返回

【问题讨论】:

    标签: hadoop cloudera oozie


    【解决方案1】:

    您可以尝试使用 kinit 命令在 shell 脚本中使用 keytab 进行身份验证

     kinit ${kinit_url} -k -t <keytab>;
    

    【讨论】:

      【解决方案2】:

      Hadoop 委托令牌由 Oozie 复制到本地/当前目录。 export HADOOP_TOKEN_FILE_LOCATION=./container_tokens 应该有帮助。

      【讨论】:

        猜你喜欢
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 2013-01-06
        • 2015-01-18
        • 2020-06-07
        • 2011-01-12
        • 1970-01-01
        相关资源
        最近更新 更多