Вы можете использовать REST API WebHDFS, как описано здесь http://hadoop.apache.org/docs/r1.0.4/webhdfs.html
Изменить:
Создать и записать в файл
Шаг 1:
Отправьте запрос HTTP PUT без автоматического следования перенаправлениям и без отправки данных файла.
curl -i -X PUT "http://:/webhdfs/v1/?op=CREATE [&overwrite=][&blocksize=][&replication=] [&permission=][&buffersize=]"
Запрос перенаправляется на узел данных, куда должны быть записаны данные файла: HTTP/1.1 307 TEMPORARY_REDIRECT Location: http://:/webhdfs/v1/?op=CREATE... Content-Length: 0
Шаг 2:
Отправьте еще один HTTP-запрос PUT, используя URL-адрес в заголовке Location с данными файла для записи.
curl -i -X PUT -T "http://:/webhdfs/v1/?op=CREATE..."
Клиент получает ответ 201 Created с нулевой длиной содержимого и URI WebHDFS файла в заголовке Location: HTTP/1.1 201 Created Location: webhdfs://:/ Content-Length: 0
Обратите внимание, что причина двухэтапного создания/добавления заключается в том, что клиенты не могут отправлять данные до перенаправления. Эта проблема решается заголовком «Ожидать: 100-продолжить» в HTTP/1.1; см. RFC 2616, раздел 8.2.3. К сожалению, существуют ошибки библиотеки программного обеспечения (например, HTTP-сервер Jetty 6 и HTTP-клиент Java 6), которые неправильно реализуют «Ожидание: 100-продолжить». Двухэтапное создание/добавление является временным обходным путем для ошибок библиотеки программного обеспечения.
person
Javier Abrego
schedule
02.06.2014