Я пытаюсь сохранить файлы в HDFS из приложения, написанного на C++. Я знаю, что вы можете использовать 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...
Я хочу знать, как хранить данные в HDFS напрямую, используя libcurl в С++.
Примечание. Я могу отправлять запросы 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);
}