Windows 环境 python读需kerberos认证的hdfs

2023年1月16日10:55:19

Windows 环境 python读需kerberos认证的hdfs

不喜欢废话,直接先上结论:
Windows环境下python读kerberos认证的hdfs不支持,即使用anaconda中的也不行,因为再撸代码过程中,必须引用krbcontext包来认证,krbcontext提供了一个kerberos上下文,可以将代码放入其中,其中 需要凭据缓存中的有效票证。但是krbcontext包中的引用包pwd不支持Windows环境,pyspark也不能绕不开krbcontext包。

不废话直接上官方例子:
hdfs模块的官方文档地址是 https://hdfscli.readthedocs.io/en/latest/ ,
下面是一段代码示例:
krbcontext 和 hdfs 是python连接hdfs时需要用到的库,它所建立的连接本质上是一个http连接,安装hdfs时,需要指定kerberos插件
pip install hdfs[kerberos]
pip install krbcontext

代码:
from hdfs.ext.kerberos import KerberosClient
from krbcontext import krbcontext

keytab_file = ‘/etc/coolpython.keytab’
principal = ‘hadoop/admin@coolpython.net’

with krbcontext(using_keytab=True, keytab_file=keytab_file, principal=principal, ccache_file=’/tmp/cache_keytab_zds’):
client = KerberosClient(url=‘http://集群的ip:50070’)
hdfs_save_path = ‘/user/hadoop/backup/001’
client.makedirs(hdfs_save_path) # 新建目录

官方给的例子写的也很清楚,直接都是Linux环境的,都没考虑过python再Windows环境下使用。

也尝试了krbcontext、pwd包再Windows环境下替代包,尝试的过程,krbcontext这个包再Kerberos认证过程中不可少,绕不开。后又尝试了pwd的替代方法,如直接引用自定义–game over,winpwd替代pwd–game over,python-daemon尝试降级到2.1.2版,再安装luigi–game over。
直接放弃用python语言了,直接用spark分分钟开发完了,这不香吗?

希望有搞定的朋友可以本着人类命运共同体的崇高精神分享出来。

  • 作者:m0_37766751
  • 原文链接:https://blog.csdn.net/m0_37766751/article/details/111962178
    更新时间:2023年1月16日10:55:19 ,共 1110 字。