【问题标题】:How to upload multiple files to HDFS via KNOX WebHDFS gateway?如何通过 KNOX WebHDFS 网关将多个文件上传到 HDFS?
【发布时间】: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}'

现在如果我想上传三个文件,比如file2file3file4 到 HDFS 位置/user/testuser,我必须分别为三个文件执行最后两个命令(从上面)三次.

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

【问题讨论】:

  • 我不确定您在第 3 步中是否需要 Location 标头的值。根据Knox user guide,“直接 WebHDFS 请求可能返回包含特定 DataNode 地址的 Location 标头。网关将重写这些 URL 可确保后续请求通过网关返回,并保护内部集群详细信息。”我还没有,但很快就会验证这一点。

标签: webhdfs knox-gateway apache-knox


【解决方案1】:

Knox 代理 WebHDFS API。我不认为 WebHDFS 有能力上传多个文件或非空目录见WebHDFS File and Directory Operations 所以你很可能无法做到这一点。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-18
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    相关资源
    最近更新 更多