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 = KerberosCl