【问题标题】:Submitting oozie jobs using keytab使用 keytab 提交 oozie 作业
【发布时间】:2014-11-04 06:43:34
【问题描述】:

我正在使用 keytab 文件绕过 kerberos 通过 oozie 运行 shell 脚本。 Shell 脚本包含 hbase shell 命令,因此我需要在运行 hbase shell 命令之前执行 kinit。这对我来说很好。

所以,如果我使用协调器启动作业并在工作流中使用 keytab(服务帐户)有多个 shell 脚本,oozie 是否会发生冲突?因为我使用 oozie 协调器启动作业但有 keytab服务帐户工作流程中的文件。

谢谢,

【问题讨论】:

    标签: hadoop hbase kerberos oozie keytab


    【解决方案1】:

    keytab 文件需要存在于所有 hadoop 数据节点上。您的 shell 脚本在作为 oozie 作业/映射任务运行时需要它们来为服务帐户执行 kinit。

    将keytab文件部署到共享集群的数据节点时,最好正确设置文件权限,使其他hadoop作业无法访问。

    【讨论】:

    • 我通过 选项将 keytab 添加到分布式缓存来解决这个问题。如果这是正确的方法,请告诉我。
    • 我认为使用分布式缓存将 keytab 文件推送到作业是一个不错的选择。在数据节点中配置 keytab 文件使其可用于该集群上运行的所有作业。使用分布式缓存,它是特定于工作的。每个作业都需要添加此文件属性。两者都适用于不同的场景。 :)
    • 你能提供一个如何使用分布式缓存的例子吗?我在 HDFS 中拥有它,并尝试将其从 HDFS 复制到本地并使用它来生成票证。但它正在抛出 CONN_KERBEROS_AUTHENTICATION_ERROR_GET_TICKETCACHE 异常。
    • 您需要将其添加到使用文件标签中,并且该文件应位于 HDFS 上的 oozie 工作流部署目录中。对于每个操作keytabfilename#keytabfilename 的文件标记看起来像这样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多