我一直在努力研究如何将必要的参数传递给蛇咬实用程序,以便它能够访问一个 kerberized 集群。我尝试在 /usr/local/etc/hadoop 路径中设置必要的 conf 目录,以及使用 kinit 初始化和获取票证。
在这方面的任何帮助或工作示例将不胜感激。
注意:我已经通过使用“hadoop”CLI 从同一台机器访问集群来测试环境设置是否正确。
我建议您为此目的使用自动配置类:
from snakebite.client import AutoConfigClient
client = AutoConfigClient()
它支持 HA 并通过 HADOOP_HOME 环境变量自动配置。
请确保您也有一个有效的密钥表
环境的 klist 输出如下所示(那里只有 1 个条目)
Credentials cache: API:1350E541-0CCD-46B9-938E-2C1C8E03A909
Principal: saurabh@HADOOP_DEV.MY-COMPANY.COM
Issued Expires Principal
May 31 16:45:30 2017 Jun 1 02:45:30 2017 krbtgt/HADOOP_DEV.MY-COMPANY.COM@HADOOP_DEV.MY-COMPANY.COM
这使我可以成功列出 HDFS 上的目录
hadoop fs -ls /user/saurabh
您必须使用正确的 keytab 进行 kinit 就足够了。它将通过主体名称自动获取结果。