web-dev-qa-db-ja.com

Python3でHDFSを操作するための最良のモジュールは何ですか?

Hdfs3、snakebite、その他がいくつかあります。どれが最もサポートされ、包括的ですか?

15
Farhat

私の知る限り、考えられるほど多くの可能性はありません。しかし、私は公式のPythonパッケージhdfs 2.0.12website をダウンロードするか、ターミナルから次のコマンドを実行してダウンロードできます。

pip install hdfs

いくつかの機能:

  • 安全なクラスターと安全でないクラスターの両方をサポートするWebHDFS(およびHttpFS)APIのPython(2および3)バインディング。
  • ファイルを転送してインタラクティブなクライアントシェルを起動するためのコマンドラインインターフェイス。エイリアスを使用すると、namenode URLキャッシュを簡単に作成できます。
  • オプションの拡張機能による追加機能:avro、HDFSから直接Avroファイルを読み書きします。データフレーム、ロードおよび保存Pandas dataframes。kerberos、Kerberos認証されたクラスターをサポートします。
7
user6165050

Snakebite、hdfs3、hdfsを試しました。

Snakebiteはダウンロードのみ(アップロードは不可)をサポートしているので、私には不向きです。

これら3つのうち、hdfs3のみがHAセットアップをサポートしているため、それが私の選択でしたが、 マルチホームネットワーク でデータノードのホスト名を使用して機能させることができませんでした(ここで説明する問題: https ://rainerpeter.wordpress.com/2014/02/12/connect-to-hdfs-running-in-ec2-using-public-ip-addresses/

アップロードをサポートしているので、hdfs(2.0.16)を使用することになりました。 HAをサポートするには、bashを使用して回避策をいくつか追加する必要がありました。

PS。 Hadoopファイルシステムと対話するために開発されたPythonライブラリを比較する興味深い記事があります http://wesmckinney.com/blog/python-hdfs-interfaces/

6
riemann

pyarrow、Apache Arrowのpython実装には、十分に維持され、文書化されたHDFSクライアントがあります: https://arrow.Apache.org/docs/python/filesystems .html

3
Falco Winkler

非常に便利なpydoopがあります。

https://github.com/crs4/pydoop

0
Sergey Zakharov