send curl put命令,使用libcurl在c++中以编程方式在webhdfs中创建文件

to94eoyn  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(321)

我正在尝试从一个用c++编写的应用程序将文件存储到hdfs中。我知道您可以在命令行/终端中使用curl:
首先发送put请求,

1) curl -i -X PUT http://<name_node>:50070/webhdfs/v1/<path>?op=CREATE

然后用重定向地址将数据写入数据节点,

2) curl -i -X PUT -T <local path> "http://<data_node>:50075/webhdfs/v1/<path>?op=CREATE...

我想知道如何在c++中使用libcurl直接将数据存储到hdfs。
注意:我可以发送get请求,而且一切都非常正常:

string url = "http://localhost:50070/webhdfs/v1/mydata/restAPI.txt?op=GETCONTENTSUMMARY"    
if (curl)
        {
            curl_easy_setopt(curl, CURLOPT_URL, url1.c_str());
            result = curl_easy_perform(curl);
            curl_easy_cleanup(curl);
        }
xoshrz7s

xoshrz7s1#

最好使用curl,以便在步骤1之后自动重定向。以下命令在我的情况下起作用:
curl-l-i-x put-t local \u file“http://:50075/webhdfs/v1/?op=create。。。

相关问题