我需要帮助,我正在使用webhdfs(也使用这个python代码来调用hadoop命令https://gist.github.com/drelu/1529478)。对于我的系统,它使用KDC进行了kerberized。我能够做卷曲,但我不知道如何在上面的python代码中使用这个curl命令。感谢您的帮助。我的curl命令如下:
curl --cacert /opt/cloudera/security/CAcerts/rootc.cer --negotiate -u https://localhost:140000/webhdfs/v1/?op=liststatus
由于
答案 0 :(得分:0)
您可以通过以下两种方式进行操作
- 使用pywebhdfs python客户端https://github.com/pywebhdfs/pywebhdfs/issues/16#issuecomment-243776503
- 没有pywebhdfs直接调用webhdfs REST调用
示例代码:https://plenium.wordpress.com/2018/07/26/run-a-python-program-to-access-hadoop-with-kerberos-enabled/
在两种方法上,都需要使用requests_kerberos模块https://github.com/requests/requests-kerberos#requests-kerberosgssapi-authentication-library
创建身份验证标头可以使用
- hdfscli python模块 https://hdfscli.readthedocs.io/en/latest/
在所有情况下,kinit需要手动完成(您可以使用一些python shell执行程序模块,例如子进程,命令..也可以使它们自动化)