Видео: Big data в бизнесе 2024
В основе ядра MapReduce - это модель программирования для обработки наборов данных, которые хранятся распределенным образом через подчиненные узлы кластера Hadoop. Ключевое понятие здесь делить и побеждать. В частности, вы хотите разбить большой набор данных на множество меньших частей и обрабатывать их параллельно с тем же алгоритмом.
С распределенной файловой системой Hadoop (HDFS) файлы уже разделены на части размером с укусом. MapReduce - это то, что вы используете для обработки всех частей.
Приложения MapReduce имеют несколько фаз, как указано в этом списке:
-
Определите точные наборы данных для обработки из блоков данных. Это включает в себя расчет, где обрабатываемые записи находятся в блоках данных.
-
Запустите указанный алгоритм против каждой записи в наборе данных, пока все записи не будут обработаны.
Отдельный экземпляр приложения, выполняющегося с блоком данных в наборе данных, известен как задача с картой . (Это часть отображения MapReduce.)
-
Локально выполнять промежуточное сокращение выходных данных каждого преобразователя.
(Выходы условно объединены, другими словами.) Эта фаза является необязательной, потому что в некоторых распространенных случаях это нежелательно.
-
В зависимости от требований к разделению группируйте соответствующие разделы данных из результирующих наборов каждого картографа.
-
Сверните результирующие наборы из картографов в единый результирующий набор - Уменьшите часть MapReduce.
Отдельный экземпляр приложения, работающего с выходными данными mapper, известен как задача редуктора . (Как ни странно, поскольку «Уменьшить» является частью имени MapReduce, эта фаза может быть факультативной: приложения без редуктора называются заданиями только для карт , которые могут быть полезны, когда нет необходимо объединить результирующие множества из задач карты.)