Как выполняется задание hadoop на разных узлах - PullRequest
0 голосов
/ 03 мая 2018

Я новичок в Hadoop, поэтому могу задавать пустые вопросы.

Учитывая, что у меня есть три подчиненных узла Hadoop, все они имеют данные о погоде. Говорят

  • Узел-1 имеет данные о погоде с 1900 по 1929 год;
  • Узел-2 имеет данные о погоде с 1930 по 1959 год;
  • Узел-3 имеет данные о погоде с 1960 по 1989 год;

У меня есть работа по уменьшению карты, чтобы найти более высокую температуру с 1900 по 1989 год.

Мой вопрос:

когда мы отправим сообщение mr job, будет ли Hadoop автоматически отправлять работу на эти три узла? Или нам нужно написать скрипт для этого.

СПАСИБО за пациента и ответы

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Данные не обрабатываются диапазонами дат или ключами при вставке в HDFS, они равномерно распределяются и также равномерно реплицируются по всем узлам на основе «блоков HDFS». Однако, допустим, репликация установлена ​​на 1, но даже в этом случае части первого диапазона могут существовать на всех трех узлах, тогда как последний диапазон находится только на одном узле.

Протоколы HDFS решают, где размещать блоки, а не внешние приложения в качестве клиента

MapReduce (или Spark) будет обрабатывать «входные разбиения», где бы они ни существовали (которые могут быть просто одним узлом). И это автоматически. Ваш код будет развернут на каждом узле (при условии, что используется YARN) для чтения данных на самом датодане (если так установлены NodeManager), а затем собраны обратно в процесс драйвера, который дополнительно выводится на локальный терминал

0 голосов
/ 03 мая 2018

HDFS - это распределенная файловая система. Таким образом, данные о погоде будут автоматически распределены между 3 подчиненными узлами. По умолчанию он будет реплицирован 3 раза. Узлы 1, 2 и 3 могут содержать фрагменты данных из всех 3 временных периодов (1900-1929, 1930-1959, 1960-1989). Это распространение и репликация выполняются автоматически при загрузке данных в HDFS. Существует главный узел, называемый NameNode, который хранит информацию метаданных о сопоставлении блоков файлов и узлов, на которых они находятся.

MapReduce - это метод распределенной обработки данных. Задание MapReduce, отправленное в кластер, будет автоматически распределено по 3 узлам. Задачи сопоставления и сокращения будут выполняться на узлах, пытаясь максимально использовать локальность данных. Это означает, что каждый узел будет пытаться обрабатывать данные, хранящиеся на нем, когда это возможно. Если есть сбои задачи, они будут повторяться до определенного количества раз. Все это происходит автоматически при выполнении задания.

Для более глубокого погружения, пожалуйста, ознакомьтесь с учебником Hadoop MapReduce .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...