Как загрузить несколько файлов в HDFS через шлюз KNOX WebHDFS?
У меня есть настройка шлюза KNOX для нашего кластера Hadoop, и я ознакомился с примерами KNOX WebHDFS. До сих пор я знаю, что приведенные ниже команды cURL могут быть использованы для создания каталога и загрузки одного файла.
curl -k -u username:password -X PUT https://localhost:8443/gateway/default/webhdfs/v1/user/testuser?op=MKDIRS
curl -i -k -u username:password -X PUT 'https://localhost:8443/gateway/default/webhdfs/v1/user/testuser/file1?op=CREATE'
curl -i -k -u username:password -T file1 -X PUT '{Value of Location header from command above}'
Теперь, если я хочу загрузить три файла, скажем, file2
, file3
, file4
в расположение HDFS /user/testuser
Я должен выполнить последние две команды (сверху) три раза для трех файлов соответственно.
Я хочу знать, каким образом я могу загрузить несколько файлов за один раз. Есть ли способ, которым я мог бы предоставить несколько файлов в качестве входных данных в одном PUT
запрос? Если их нет, я даже в порядке с перемещением файлов в папку и загрузкой этой папки вместо одного PUT
запрос.
1 ответ
Knox прокси-сервер API-интерфейсы WebHDFS. Я не думаю, что в WebHDFS есть возможность загружать несколько файлов или непустой каталог, см. Раздел "Операции с файлами и каталогами WebHDFS", поэтому, скорее всего, вы не сможете этого сделать.
Другой вариант - использовать скрипт (скрипт bash), который использует несколько запросов PUT.