发送cURL PUT命令以使用libcurl在c ++中以编程方式在webhdfs中创建文件

时间:2015-03-19 18:21:25

标签: c++ hadoop curl libcurl webhdfs

我试图用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);
        }

1 个答案:

答案 0 :(得分:2)

最好使用curl,以便在步骤1之后自动重定向。以下命令适用于我的情况:

curl -L -i -X PUT -T local_file“http://:50075 / webhdfs / v1 /?op = CREATE ...