Меняет ли блоки разбиения, такие как FileSplit в Haddop?

Первый вопрос: я хочу знать, изменяет ли разделение блоков каким-либо образом (то есть изменяет размер, перемещает блок в другое место, создает новые блоки...).

Второй вопрос: я думаю, что разбиения не изменяют блоки, но указывают, где должен существовать каждый MapTask и запускаться в кластере для обеспечения локальности данных или осведомленности о стойке, поскольку узлы данных уже запущены и имеют блоки, поэтому я думаю, что разбиения будут скажите Hadoop запустить MapTask рядом с узлом, который содержит данные. Обратите внимание: внутри InputSplit находится Location/Host, который я думаю для этой цели. Пожалуйста, поправьте меня, если я ошибаюсь

Третьи вопросы. Изначально перед тем, как выполнить задачу, будут ли перемещены блоки туда, где находится MapTask, или MapTask переместится туда, где находятся блоки (т. Е. Расположение DataNode)?

1 ответ

Решение

На ваши первый и второй вопросы:

Блоки не изменятся с расколами. Чтобы подготовить разделение ввода, некоторые данные из блока DataNode могут быть скопированы в другой DataNode, для которого выполняется задача Map (если данные перекрываются между несколькими блоками данных)

Третьи вопросы. Изначально перед тем, как выполнить задачу, будут ли перемещены блоки туда, где находится MapTask, или MapTask переместится туда, где находятся блоки (т. Е. Расположение DataNode)?

Если MapTask извлекает данные из DataNode A / Block-A и некоторая часть данных в DataNode A / Block-A распространяется на DataNode B/Block-B, то данные из Block-B будут скопированы в Mapper (DataNode-A),

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

Как Hadoop выполняет разбиение ввода?

Другие вопросы по тегам