有没有办法使用WebHDFS REST API下载HDFS文件?

Tar*_*riq 12 hadoop hdfs webhdfs

有没有什么方法可以使用WebHDFS REST API从HDFS下载文件?我最接近的是使用open操作来读取文件并保存内容.

curl -i -L "http://localhost:50075/webhdfs/v1/demofile.txt?op=OPEN" -o ~/demofile.txt
Run Code Online (Sandbox Code Playgroud)

是否有任何API可以让我直接下载文件而无需打开它?我浏览了官方文档并尝试了谷歌,但找不到任何东西.有人能指出我正确的方向还是给我一些指示?

非常感谢你宝贵的时间.

Cha*_*guy 9

您可以使用DataNode API(默认在端口50075上),它支持streamFile您可以利用的命令.使用wget它看起来像:

wget http://$datanode:50075/streamFile/demofile.txt -O ~/demofile.txt
Run Code Online (Sandbox Code Playgroud)

请注意,此命令需要在datanode本身上执行,而不是在namenode上执行!

或者,如果您不知道要触发哪个datanode,您可以询问jobtracker,它会使用以下URL将您重定向到正确的datanode:

http://$namenode:50070/data/demofile.txt
Run Code Online (Sandbox Code Playgroud)