Что именно означает Data Locality в Hadoop? - PullRequest
2 голосов
/ 07 октября 2019

Локальность данных, как определено многими учебными сайтами Hadoop (т. Е. https://techvidvan.com/tutorials/data-locality-in-hadoop-mapreduce/)) гласит, что: «Локальность данных в Hadoop - это процесс перемещения вычислений близко к месту, где находятся фактические данные, вместо перемещения больших данных для вычислений. Это сводит к минимуму общую перегрузку сети. "

Я могу понять, что узел, в котором находятся данные, обрабатывает эти данные, а не перемещает данные, будет эффективным. Однако, что это значит, когда" перемещениевычислений, близких к месту расположения фактических данных "? Означает ли это, что если данные находятся на сервере в Германии, то лучше использовать сервер во Франции для вычисления этих данных, а не сервер в Сингапуре для выполнениявычисления, так как Франция ближе к Германии, чем Сингапур?

Ответы [ 2 ]

3 голосов
/ 07 октября 2019

Как правило, люди говорят об этом в совершенно ином масштабе, особенно в контексте Hadoop.

Предположим, у вас есть кластер из 5 узлов, вы храните файл там и вам необходимо выполнить расчет по нему.

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

Это уменьшаетнагрузка на сеть.


Приятно осознавать, что во многих новых инфраструктурах сеть не является узким местом, поэтому вы будете больше слышать о разъединении вычислений и хранилищ.

1 голос
/ 09 октября 2019

I +1 Деннис Джарудудин ответил, и просто хотел добавить - вы действительно можете увидеть разные уровни населенного пункта в MR, когда вы проверяете счетчики заданий, например в пользовательском интерфейсе истории заданий.

enter image description here

HDFS и YARN осведомлены о стойке , так что это не просто двоичный одноименный узел: на приведенном выше экране Data-local означает, что задача выполнялась локально длямашина, которая содержала фактические данные;Rack-local - данные не были локальными для узла, на котором выполнялась задача, и их необходимо было скопировать, но все еще находились в той же стойке;и, наконец, случай Other local - когда данные не были доступны ни локально, ни в одной стойке, поэтому их пришлось скопировать через два коммутатора в узел, который выполняет вычисления.

...