2014-10-17 111 views
1

我正在使用keytab文件绕过kerberos以通过oozie运行一个shell脚本。 Shell脚本包含hbase shell命令,因此我需要在运行hbase shell命令之前执行kinit。这对我来说工作正常。使用密钥表提交oozie作业

因此,在我使用协调器启动作业并在工作流中使用keytab(服务帐户)使用多个shell脚本的情况下oozie中会有冲突吗?由于我使用oozie协调器启动作业,服务帐户工作流程中的密钥表文件。

谢谢,

回答

1

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

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

+0

我正在通过选项向分布式缓存添加keytab解决此问题。请让我知道这是否正确。 – VishAmdi 2014-11-04 18:25:04

+0

我认为使用分布式缓存将密钥表文件推送到作业是很好的选择。在数据节点中配置keytab文件后,该文件便可供该群集上运行的所有作业使用。使用分布式缓存,这是特定的工作。每个工作都需要添加这个文件属性。两者都适用于不同的场景。 :) – 2014-11-04 22:43:34

+0

你能提供一个如何使用分布式缓存来做它的例子吗?我在HDFS中使用过它,并试图将它从HDFS复制到本地,并用它来生成票据。但它正在抛出CONN_KERBEROS_AUTHENTICATION_ERROR_GET_TICKETCACHE异常。 – Atom 2015-08-05 03:21:46