Главная страница Новости кинофильмов Игровые новости Новости спорта Новости технологий Автомобильные новости Новости науки Финансовые новости Новости культуры Торрент игры

Объединение нескольких файлов в Hadoop

Новости

Эту команду я использовал для объединения файлов, хранящихся в Hadoop HDFS, соответствующих глобальному выражению, в один файл. Он использует утилиту “getmerge” из hadoop fs, но, в отличие от “getmerge”, окончательный объединенный файл помещается не в локальную файловую систему, а в HDFS.

Вот как это выглядит

echo » > /tmp/test; hadoop fs -getmerge /user/hdfs/source/**/*/tmp/test &cat /tmp|test/hadoop fs -put — /пользователь/hdfs/объединено; rm /tmp/test

Вот что происходит. Мы начинаем с создания временного файла в “/tmp/test”. Мы запускаем команду “getmerge”, и в то же время сгенерированный контент передается в команду Hadoop “put”. Обратите внимание на ”-” сразу после “-put”, который указывает Hadoop на получение содержимого из стандартного ввода. Наконец, мы удаляем временный файл.

Вы можете проверить результат выполнения вашей команды, сравнив размер файла в исходном каталоге и в каталоге сгенерированного файла:

hadoop fs -du -s /user/hdfs/source hadoop fs -du -s /user/hdfs/merged

Вы также могли бы использовать реализацию “cat”, но в моем тесте глобализация была более строгой. В обоих случаях это неэффективно. Вы загружаете содержимое локально и даже временно сохраняете его. В конечном итоге вы могли бы сохранить часть хранилища, если у вас локально подключена HDFS.

Последние версии HDFS будут поставляться с функциями объединения, описанными в HDFS-222.


Другие новости: