Как объединить 2 файла bzip2? - PullRequest
0 голосов
/ 02 июля 2010

Я хочу объединить 2 файла bzip2.Я попытался добавить одно к другому: cat file1.bzip2 file2.bzip2 > out.bzip2, который, кажется, работает (этот файл распакован правильно), но я хочу использовать этот файл в качестве входного файла Hadoop, и я получаю ошибки об поврежденных блоках.лучший способ объединить 2 файла bzip2 без их распаковки?

Ответы [ 3 ]

2 голосов
/ 08 июля 2010

Обработка сцепленного bzip исправлена ​​на транке или должна быть: https://issues.apache.org/jira/browse/HADOOP-4012. Есть примеры его работы: https://issues.apache.org/jira/browse/MAPREDUCE-477?focusedCommentId=12871993&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12871993 Убедитесь, что вы используете последнюю версию Hadoop, и у вас все должно быть в порядке.

1 голос
/ 02 июля 2010

Вы могли бы сжать (ну, сохранить) их обоих в новый bz2? Это означало бы, что вам нужно выполнить 3 распаковки, чтобы получить содержимое 2 архивов, но это может работать в вашем сценарии.

0 голосов
/ 03 января 2013

Нет необходимости объединять файлы, чтобы использовать их в качестве ввода Hadoop:

  • рассмотрим file_name* - шаблон;
  • file_name_1,file_name_2 - список входов.

И Hadoop справится с этим.

В противном случае вы можете использовать потоковую передачу Hadoop для их объединения (с распаковкой).

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

FILES_LIST="'ls -m template*.bz2'"

INPUT_FILE="'echo $FILES_LIST | tr -d ' ' '"

внутренние ' кавычки должны быть разными. Вы можете передать $INPUT_FILE в качестве переменной в ваш скрипт через CLI.

Также рассмотрим класс CombineFileInputFormat как InputFormat.

...