Различия между MapReduce и пряжей
Я искал о hadoop и mapreduce в отношении проблем отставания и работ по этой проблеме
но вчера я обнаружил, что есть Hadoop 2 с пряжей,,
к сожалению, ни одна статья не говорит о проблеме отставания в пряже
Итак, я хочу знать, в чем разница между MapReduce и Yarn в отстойнике? страдает пряжа из-за проблем с отстойником?
и когда MRmaster запрашивает у менеджера ресурсов ресурсы, менеджер ресурсов предоставит MRmaster все ресурсы, в которых он нуждается, или это соответствует возможностям кластерных вычислений?
Спасибо большое,,
4 ответа
Вот MapReduce 1.0 и MapReduce 2.0 (YARN)
MapReduce 1.0
В типичном кластере Hadoop стойки связаны между собой через коммутаторы ядра. Базовые коммутаторы должны подключаться к коммутаторам верхней стойки. Предприятия, использующие Hadoop, должны рассмотреть возможность использования 10GbE, связанного Ethernet и резервных коммутаторов верхней стойки, чтобы снизить риск в случае сбоя. По умолчанию файл разбивается на куски по 64 МБ и распределяется по узлам данных. Каждый блок имеет коэффициент репликации по умолчанию, равный 3, то есть в каждый момент времени будет 3 копии данных. Hadoop "Rack Aware", а HDFS имеет реплицированные фрагменты на узлах в разных стойках. JobTracker назначает задачи узлам, ближайшим к данным, в зависимости от расположения узлов и помогает NameNode определять "ближайший" блок для клиента во время чтения. Администратор предоставляет сценарий, который сообщает Hadoop, в какой стойке находится узел, например: /ffisedisedacenter/rack2.
Ограничения MapReduce 1.0 - Hadoop может масштабироваться до 4000 узлов. Когда он превышает этот предел, он вызывает непредсказуемое поведение, такое как каскадные сбои и серьезное повреждение всего кластера. Еще одна проблема, связанная с многопользовательским режимом - невозможно запускать другие среды, кроме MapReduce 1.0, в кластере Hadoop.
MapReduce 2.0
MapReduce 2.0 состоит из двух компонентов - YARN с возможностями управления ресурсами кластера и MapReduce.
В MapReduce 2.0 JobTracker разделен на три службы:
- ResourceManager, постоянная служба YARN, которая получает и запускает приложения в кластере. Задание MapReduce - это приложение.
- JobHistoryServer, чтобы предоставить информацию о выполненных работах
- Application Master, для управления каждым заданием MapReduce и прекращается по завершении задания.
TaskTracker был заменен NodeManager, службой YARN, которая управляет ресурсами и развертыванием на узле. NodeManager отвечает за запуск контейнеров, которые могут быть либо картой, либо уменьшать задачу.
Эта новая архитектура нарушает модель JobTracker, позволяя новому ResourceManager управлять использованием ресурсов в приложениях, а ApplicationMasters берет на себя ответственность за управление выполнением заданий. Это изменение устраняет узкое место и позволяет кластерам Hadoop масштабироваться до более крупных конфигураций, чем 4000 узлов. Эта архитектура также позволяет одновременно выполнять различные модели программирования, такие как обработка графиков, итеративная обработка, машинное обучение и общие кластерные вычисления, включая традиционный MapReduce.
Вы говорите "Различия между MapReduce и YARN". MapReduce и YARN определенно разные. MapReduce - это модель программирования, YARN - архитектура для распределительного кластера. Hadoop 2 использует YARN для управления ресурсами. Кроме того, hadoop поддерживает модель программирования, которая поддерживает параллельную обработку, известную как MapReduce. До Hadoop 2 Hadoop уже поддерживал MapReduce. Короче говоря, MapReduce работает выше архитектуры YARN. Извините, я не упоминаю в части проблемы отставания.
"когда MRmaster запрашивает у менеджера ресурсов ресурсы?" когда пользователь отправляет MapReduce Job. После завершения работы с MapReduce ресурс вернется к свободному.
"Менеджер ресурсов предоставит MRmaster все ресурсы, которые ему необходимы, или это соответствует возможностям кластерных вычислений" Я не понимаю этого вопроса. Очевидно, что менеджер ресурсов предоставит все ресурсы, в которых он нуждается, независимо от того, какие вычислительные возможности кластера. Возможности кластерных вычислений будут влиять на время обработки.
Если для проблемы бродяги вы имеете в виду, что если первый парень ждет "что-то", что вызывает больше ожиданий на дороге, которая зависит от того первого, то, я думаю, эта проблема всегда существует в работе MR. Получение выделенных ресурсов естественным образом участвует в этой проблеме наряду со всеми другими вещами, которые могут заставить компоненты ждать что-то.
Tez, который должен быть заменой среды выполнения MR, делает все по-другому. Вместо того, чтобы выполнять задачи, выполняемые таким же образом, текущий MR Appmaster пытается использовать DAG для задач, что намного лучше помогает не попасть в проблему плохого преследователя.
Вы должны понимать отношения между MR и YARN. YARN - просто фиктивный планировщик ресурсов, то есть он не планирует "задачи". То, что он дает MR Appmaster, - это набор или ресурсы (в некотором смысле это всего лишь комбинация памяти, процессора и местоположения). Тогда MR Appmaster несет ответственность за решение, что делать с этими ресурсами.