【发布时间】:2018-07-03 22:27:29
【问题描述】:
我已经为我们的 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}'
现在如果我想上传三个文件,比如file2、file3、file4 到 HDFS 位置/user/testuser,我必须分别为三个文件执行最后两个命令(从上面)三次.
我想知道一种可以一次性上传多个文件的方法。有没有一种方法可以在一个PUT 请求中提供多个文件作为输入?如果没有,我什至可以将文件移动到一个文件夹,然后使用单个 PUT 请求上传该文件夹。
【问题讨论】:
-
我不确定您在第 3 步中是否需要 Location 标头的值。根据Knox user guide,“直接 WebHDFS 请求可能返回包含特定 DataNode 地址的 Location 标头。网关将重写这些 URL 可确保后续请求通过网关返回,并保护内部集群详细信息。”我还没有,但很快就会验证这一点。
标签: webhdfs knox-gateway apache-knox