20

我看到有 hdfs3、snakebite 和其他一些。哪一个是最好的支持和全面的?

4

5 回答 5

9

据我所知,可能性并没有人们想象的那么多。但我建议hdfs 2.0.12可以通过运行从网站或终端下载官方 Python 包:

pip install hdfs

一些特点:

  • WebHDFS(和 HttpFS)API 的 Python(2 和 3)绑定,支持安全和不安全的集群。
  • 用于传输文件和启动交互式客户端 shell 的命令行界面,具有方便 namenode URL 缓存的别名。
  • 通过可选扩展的附加功能:avro,直接从 HDFS 读取和写入 Avro 文件。数据框,用于加载和保存 Pandas 数据框。kerberos,以支持经过 Kerberos 身份验证的集群。
于 2016-10-27T13:47:51.790 回答
8

我试过蛇咬、hdfs3 和 hdfs。

Snakebite 只支持下载(不支持上传),所以它不适合我。

在这 3 个中,只有 hdfs3 支持 HA 设置,所以这是我的选择,但是我没有设法使其与使用 datanode 主机名的多宿主网络一起工作(此处描述的问题: https ://rainerpeter.wordpress.com/2014/ 02/12/connect-to-hdfs-running-in-ec2-using-public-ip-addresses/

所以我最终使用了 hdfs (2.0.16),因为它支持上传。我不得不使用 bash 添加一些解决方法来支持 HA。

PS。有一篇有趣的文章比较了为与 Hadoop 文件系统交互而开发的 Python 库,位于http://wesmckinney.com/blog/python-hdfs-interfaces/

于 2017-03-07T10:31:46.957 回答
4

pyarrow, apache arrow 的 python 实现有一个维护良好并记录在案的 HDFS 客户端:https ://arrow.apache.org/docs/python/filesystems.html

于 2019-01-11T19:45:07.037 回答
1

pydoop,挺方便的。

https://github.com/crs4/pydoop

于 2020-01-23T13:53:18.313 回答
0

我发现 pyhdfs-client 非常适合大文件。(使用 webhdfs 需要 1 小时的文件在 18 分钟内被加载)。

pip install pyhdfs-client

唯一的缺点是,它是新的,与其他 hdfs 客户端相比,它的界面并不干净。缺少文档,但是您可以在此处查看使用情况:https ://pypi.org/project/pyhdfs-client/

于 2021-03-25T21:45:18.703 回答