Можно ли добавить файл HDFS от нескольких клиентов параллельно? - PullRequest
21 голосов
/ 17 июня 2011

В основном весь вопрос в названии. Мне интересно, можно ли добавить файл, расположенный на HDFS, с нескольких компьютеров одновременно? Что-то вроде хранения потока событий, постоянно создаваемых несколькими процессами. Заказ не важен.

Я помню, как слышал в одной из технических презентаций Google, что GFS поддерживает такие функции добавления, но попытка ограниченного тестирования с HDFS (либо с обычным файлом append (), либо с SequenceFile), похоже, не работает.

Спасибо

Ответы [ 2 ]

12 голосов
/ 18 июня 2011

Я не думаю, что это возможно с HDFS.Даже если вы не заботитесь о порядке записей, вы все равно заботитесь о порядке байтов в файле.Вы не хотите, чтобы писатель А записывал частичную запись, которая затем испорчена писателем Б. Это сложная проблема для HDFS, которая решается сама по себе, поэтому она этого не делает.

Создать файл для каждого писателя.Передайте все файлы любому работнику MapReduce, который должен прочитать эти данные.Это намного проще и соответствует дизайну HDFS и Hadoop.Если для кода, не относящегося к MapReduce, необходимо прочитать эти данные как один поток, то либо последовательно потоковую передачу каждого файла, либо очень быстрое задание MapReduce для объединения файлов.

7 голосов
/ 27 января 2015

только к вашему сведению, возможно, он будет полностью поддерживаться в hadoop 2.6.x, в соответствии с пунктом JIRA на официальном сайте: https://issues.apache.org/jira/browse/HDFS-7203

...