Как oop распределяет данные / задачи для заданий MapReduce? - PullRequest
0 голосов
/ 14 января 2020

Я установил кластер Had oop с 4 узлами, один из которых служит узлом NameNode для HDFS, а также мастером Yarn. Этот узел также является самым мощным.

Теперь я распространил 2 текстовых файла, один на node01 (namenode) и один на node03 (datanode). При выполнении задания basi c WordCount MapReduce я вижу в журналах, что только node01 выполнял какие-либо вычисления.

Мой вопрос заключается в том, почему oop не решил выполнить MapReduce на node03 и перенести результат вместо переноса всей книги на node01. Я также проверил, дублирование отключено, и книга доступна только на узле 03.

Итак, как же oop решал между передачей данных и настройкой заданий, и в этом решении проверяет, какой компьютер имеет большую вычислительную мощность (например, он решил перенести на node01, потому что node01 - это 4-ядерный 4-гигабайтный оперативный компьютер против 2core 1 гигабайта на node03)?

Я не смог ничего найти в этой топи c, поэтому Любое руководство будет оценено.

Спасибо!


Еще несколько уточнений: узел 01 запускает NameNode, а также DataNode и ResourceManager, а также NodeManager. Таким образом, он служит «главным узлом», а также «вычислительным узлом».

Я удостоверился, что поместил один файл на node01 и один файл на node03, выполнив: hdfs dfs -put sample1.txt samples на node01 и hdfs dfs -put sample02.txt samples на узле 03. Поскольку репликация отключена, это приводит к тому, что данные - которые были доступны локально на узле 01, соответствующем узлу03 - только сохраняются там.

Я проверил это с помощью веб-интерфейса HDFS. Для sample1.txt он говорит, что блоки доступны только на node01; для sample2.txt говорится, что блоки доступны только на node03.

Относительно @ cricket_007: меня беспокоит то, что sample2.txt доступен только на node03. Веб-интерфейс YARN сообщает, что для попытки приложения на узле 01 был выделен только один контейнер. Если задача сопоставления для файла sample2.txt, на узле 03 также будет контейнер.

Таким образом, для узла 01 необходимо получить файл sample2.txt из узла03.

Да, Я знаю, что oop не работает хорошо на 1 гигабайте ОЗУ, но я работаю с кластером Raspberry Pi, просто чтобы поиграть и немного поучиться. Это не для производственного использования.

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Для всех, кто интересуется:

По крайней мере, для меня пользовательский интерфейс HistoryServer (который необходимо запустить вручную) правильно показывает, что node03 и node01 выполняли задания карты. Таким образом, мое утверждение было неверным. Я до сих пор удивляюсь, почему пользовательский интерфейс попытки приложения говорит об одном контейнере, но, думаю, это не имеет значения.

Спасибо, ребята!

0 голосов
/ 14 января 2020

Мастер приложения YARN случайным образом выбирает узел для выполнения вычисления на основе информации, доступной из Namenode, где хранятся файлы. Узлы данных и NodeManager должны работать на одних и тех же компьютерах.

Если ваш файл не превышает размер блока HDFS, нет причин извлекать данные из других узлов.

Примечание. Если бы oop службы работали не так хорошо только на 1 ГБ ОЗУ, вам необходимо по-разному настроить параметры YARN для узлов разных размеров.

...