Python使用HDFS的方式

Python使用HDFS的方式,python,hdfs,Python,Hdfs,我有一个包含大量文件的HDFS目录。当我试图通过Web界面进入目录时,浏览器挂起。当我试图通过命令行(hadoop fs-ls/user/loom/many_files\u dir/)列出文件时,我得到 我希望有一些python方法来枚举目录(或者其他脚本语言)中的文件。你能告诉我吗?我建议你用蛇咬法 这将直接与namenode对话以获取列表,而无需调用本地JVM。您现在可能对新的python hdfs Interactior感兴趣: 在本例中,我将使用JavaAPI。afaik中没有本机Pyt

我有一个包含大量文件的HDFS目录。当我试图通过Web界面进入目录时,浏览器挂起。当我试图通过命令行(
hadoop fs-ls/user/loom/many_files\u dir/
)列出文件时,我得到


我希望有一些python方法来枚举目录(或者其他脚本语言)中的文件。你能告诉我吗?

我建议你用蛇咬法


这将直接与namenode对话以获取列表,而无需调用本地JVM。

您现在可能对新的python hdfs Interactior感兴趣:


在本例中,我将使用JavaAPI。afaik中没有本机Python API。另一种选择是libhdfs,但它也构建在Java之上;它包含了一个使用示例,即使链接死了,它也会有一些用处。这个答案可以用一个类似的例子来改进。我已经回答了你的评论。还有别的吗?
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
[Unloading class sun.reflect.GeneratedMethodAccessor1]
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Arrays.copyOf(Arrays.java:2882)
        ......
client = snakebite.client.Client(host, port=8020)
list(client.ls(["/user/loom/many_files_dir/"]))
from hdfs3 import HDFileSystem
hdfs = HDFileSystem(host=host, port=8020)
hdfs.ls("/user/loom/many_files_dir/")