2016-01-21 3 views
0

Могу ли я изменять файлы, которые находятся на hdfs? Единственный способ создать временный файл с измененным контентом и удалить исходный файл?Изменение файлов на hdfs с помощью mapreduce

Могу ли я изменить файл, используя map-reduce? Могут ли различные блоки файла быть изменены параллельно и каким-то образом объединены в один файл?

ответ

1

Вы не можете изменить файл, указанный в HDFS, за исключением добавления к нему. Смотрите этот ответ, который подтверждает, что Append можно:

Append data to existing file in HDFS Java

Карты снижение позволяет работать на файл параллельно, причем каждый блок отображения читает блок файла, и многие картографы работают сразу. Так оно и должно работать.

Любой заданный картограф может фильтровать строки и записывать все, некоторые или ни одного из них в новый файл довольно легко.

Если вы используете map-reduce для записи измененного файла, по умолчанию он будет отображаться в виде каталога файлов, которые могут быть объединены в один файл в зависимости от вашего требования.

+0

Привет, большое спасибо за ваш ответ. Как обеспечить, чтобы вывод был сериализован при объединении выходных файлов в один файл. Я имею в виду, что исходный файл содержит данные блока 1, за которыми следуют данные блока 2, и мой выходной файл также должен иметь данные блока 1, за которыми следуют данные блока 2, но с некоторыми строками в каждом из блоков, отфильтрованных. Это возможно ? – user2783058

+0

На карте уменьшите работу, вы начнете с 1 файла из 10 блоков. Один процесс будет читать каждый блок, и если вы просто хотите отфильтровать некоторые строки и выписать данные, вы получите 10 файлов в каталоге, каждый из которых соответствует вашим первоначальным 10 блокам. Файлы будут иметь имя 00000 до 00010, и я думаю, что они будут иметь тот же порядок, что и исходные блоки, но я не уверен в этом. Если каждый блок может обрабатываться независимо, вам небезразличен, какой блок 1 или 2? –

+0

Если заказ имеет важное значение, запустите работу по сокращению карты с помощью одного редуктора и выполните сортировку - тогда у вас будет один файл с N блоками и гарантированный порядок сортировки. –

Смежные вопросы