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

时间:2013-05-31 20:09:59

标签: hadoop hdfs webhdfs

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

curl -i -L "http://localhost:50075/webhdfs/v1/demofile.txt?op=OPEN" -o ~/demofile.txt

是否有任何API可以让我直接下载文件而无需打开它?我通过了官方document并尝试了Google,但找不到任何内容。有人能指出我正确的方向还是给我一些指示?

非常感谢你宝贵的时间。

1 个答案:

答案 0 :(得分:8)

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

wget http://$datanode:50075/streamFile/demofile.txt -O ~/demofile.txt

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

或者,如果你不知道要点击哪个datanode,你可以询问jobtracker,它会使用这个URL将你重定向到正确的datanode:

http://$namenode:50070/data/demofile.txt