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