Я думаю, что у вас есть неправильное представление о взаимоотношениях между HDFS и mapreduce. HDFS - это основная файловая система, mapreduce - это вычислительная среда. HDFS самостоятельно не использует структуру mapreduce вообще для своей работы. Работа Mapreduce использует HDFS в качестве файловой системы при поиске своих ящиков для работы, записи временных данных обработки, вытягивания файлов для обработки или любой другой операции с файлами. Количество карт/редукторов устанавливается на время подачи заявки и зависит от клиента mapreduce, подающего задание.
Если у вас есть 500 МБ-файл, который был разделен на 4 блока по 128 МБ, и вы хотите запустить задание сопоставления слов, которое читает файл и выводит количество каждого встречающегося слова, и вы запускаете его с 4-мя картами и 2 редуктора, вы в конечном итоге будете выполнять каждую задачу карты, обрабатывая один из блоков размером 4 x 128 МБ. Задание будет сообщаться с namenode HDFS, чтобы запросить файл, namenode ответит всеми блоками, необходимыми для сборки файла, а также даст расположение блоков. Фаза карты будет считывать эти файлы из своих datanodes и создавать 4 файла после их обработки (например, part-0000, part-0001, part-0002, part-0003), фаза уменьшения будет сортировать и подсчитывать слова в каждом файле и дать ему окончательный результат.
Вам не нужно увеличивать блоки только потому, что ваш файл больше размера блока. Это нарушает цель распределенной файловой системы или любой существующей файловой системы. HDFS (и все файловые системы, которые я использовал) может иметь 8 ГБ файл - он все равно разбивает его на 128 Мбайт кусков или все, что вы задаете в качестве размера вашего блока.
Большое спасибо за ответ, он отвечает на мой вопрос, есть ли у вас статья, в которой объясняется, как выбираются размер и количество входных расщеплений и какова связь между этими разбиениями и блоками hdfs (помимо данных)? –
Пожалуйста, взгляните на «Hadoop: окончательный герой Tom White». Это медленная книга. Вы по достоинству оцените детали. – Marco99
Спасибо большое! я сделаю это :), но в краткосрочной перспективе мне нужен быстрый ответ для одного из моих клиентов, поэтому, если у вас есть хорошая статья, не стесняйтесь :) Большое спасибо. –