Хотите просто подтвердить следующее. Проверьте, правильно ли это: 1. В соответствии с моим пониманием, когда мы копируем файл в HDFS, это тот момент, когда файл (при условии, что его размеp > 64 МБ = размер блока HDFS) разбит на несколько фрагментов, и каждый фрагмент хранится на разных узлах данных.
-
Содержимое файла уже разделено на куски, когда файл скопирован в HDFS и что разделение файлов не происходит во время выполнения задания на карту. Задачи карты назначаются только таким образом, чтобы они работали на каждом куске макс. размер 64 МБ с локальностью данных (т.е. задача карты выполняется на этом node, который содержит данные/фрагмент)
-
Разделение файлов также происходит, если файл сжат (gzipped), но MR гарантирует, что каждый файл обрабатывается только одним устройством отображения, то есть MR будет собирать все куски gzip файла, лежащие на других узлах данных, и дать им все единственный картограф.
-
То же самое, что и выше, произойдет, если мы определим isSplitable(), чтобы вернуть false, т.е. все куски файла будут обработаны одним обработчиком, работающим на одной машине. MR будет читать все куски файла из разных узлов данных и сделать их доступными для одного картографа.