Je vois qu'il y a hdfs3, snakebite et quelques autres. Lequel est le mieux pris en charge et le plus complet?
Autant que je sache, il n'y a pas autant de possibilités qu'on pourrait le penser. Mais je suggère le Python Package hdfs 2.0.12
qui peut être téléchargé le site Web ou depuis le terminal en exécutant:
pip install hdfs
Quelques fonctionnalités:
J'ai essayé snakebite, hdfs3 et hdfs.
Snakebite ne prend en charge que le téléchargement (pas de téléchargement), donc ce n'est pas pour moi.
Sur ces 3 seuls hdfs3 prend en charge la configuration HA, donc c'était mon choix, mais je n'ai pas réussi à le faire fonctionner avec réseaux multi-hôtes en utilisant des noms d'hôte de datanode (problème décrit ici: https : //rainerpeter.wordpress.com/2014/02/12/connect-to-hdfs-running-in-ec2-using-public-ip-addresses/ )
J'ai donc fini par utiliser hdfs (2.0.16) car il prend en charge les téléchargements. J'ai dû ajouter une solution de contournement en utilisant bash pour prendre en charge HA.
PS. Il y a un article intéressant comparant Python bibliothèques développées pour interagir avec le système de fichiers Hadoop sur http://wesmckinney.com/blog/python-hdfs-interfaces/
pyarrow
, l'implémentation python de la flèche Apache a un client HDFS bien entretenu et documenté: https://arrow.Apache.org/docs/python/filesystems .html
Il y a pydoop
, ce qui est assez pratique.