如何通过KNOX WebHDFS网关将多个文件上传到HDFS?

时间:2018-07-03 09:52:39

标签: webhdfs knox-gateway apache-knox

我为Hadoop集群设置了KNOX网关,并且已经阅读了KNOX WebHDFS示例。到目前为止,我知道下面的cURL命令可用于创建目录并上传单个文件。

curl -k -u username:password -X PUT https://localhost:8443/gateway/default/webhdfs/v1/user/testuser?op=MKDIRS
curl -i -k -u username:password -X PUT 'https://localhost:8443/gateway/default/webhdfs/v1/user/testuser/file1?op=CREATE'
curl -i -k -u username:password -T file1 -X PUT '{Value of Location header from command above}'

现在,如果我想将三个文件(例如file2file3file4上传到HDFS位置/user/testuser,则必须执行最后两个命令(从以上)分别对三个文件进行了三次。

我想知道一种可以一次上传多个文件的方法。有没有一种方法可以在一个PUT请求中提供多个文件作为输入?如果没有,我什至可以将文件移动到文件夹,然后通过单个PUT请求上传该文件夹。

1 个答案:

答案 0 :(得分:0)

Knox代理WebHDFS API。我认为WebHDFS不能上传多个文件或非空目录,请参见WebHDFS File and Directory Operations,因此很可能您将无法做到这一点。

另一个选择是使用使用多个PUT请求的脚本(bash脚本)。