Понимание mapreduce.framework.name в отношении Hadoop

Я изучаю Hadoop и узнал, что существует две версии фреймворка: Hadoop1 и Hadoop2.

Если я правильно понимаю, в Hadoop1 среда выполнения основана на двух демонах, а именно TaskTracker а также JobTracker в то время как в Hadoop2 (он же пряжа) среда выполнения основана на "новых демонах", а именно ResourceManager, NodeManager, ApplicationMaster,

Пожалуйста, поправьте меня, если это не правильно.

Я узнал о следующем параметре конфигурации:

mapreduce.framework.name
Возможные значения, которые он может принимать: local, classic, yarn

Я не понимаю, что они на самом деле означают; например, если я устанавливаю Hadoop 2, то как он может иметь старую среду выполнения (которая имеет TaskTracker, JobTracker).

Кто-нибудь может мне помочь, что означают эти ценности?

1 ответ

Решение
  • yarn обозначает версию MR 2.
  • classic для MR версии 1
  • local для локальных прогонов рабочих мест MR.

MR V1 и MR V2 как раз о том, как управляются ресурсы и выполняется задание. Текущий релиз Hadoop способен на оба (и даже в локальном облегченном режиме). Когда вы устанавливаете значение как yarn, вы просто инструктируете фреймворк для использования yarn способ выполнить работу. Точно так же, когда вы установите его local вы просто говорите платформе, что нет кластера для выполнения и все это в JVM. Это не другая инфраструктура для инфраструктуры MR V1 и MR V2; это просто способ выполнения задания, которое меняется.

jobTracker, TaskTracker и т. д. - все это просто потоки демонов, которые создаются при необходимости и уничтожаются.

MRv1 использует JobTracker создавать и назначать задачи узлам данных. Было обнаружено, что это слишком неэффективно при работе с большими кластерами, что приводит к yarn

MRv2 (он же YARN "Еще один согласователь ресурсов") имеет диспетчер ресурсов для каждого кластера, и каждый узел данных запускает диспетчер узлов. Для каждого задания один подчиненный узел будет действовать как Application Master, мониторинг ресурсов / задач и т. д.

Локальный режим предназначен для имитации и отладки приложения MR на одном компьютере /JVM.

РЕДАКТИРОВАТЬ: на основе комментариев

jps (Состояние процесса виртуальной машины Java) - это инструмент JVM, который согласно официальной странице:

Утилита jps перечисляет инструментированные виртуальные машины Java HotSpot (JVM) в целевой системе. Инструмент ограничен передачей информации о JVM, для которых у него есть разрешения на доступ.

Так,

  1. jps это не инструмент больших данных, скорее инструмент Java, который рассказывает о JVM, однако он не разглашает никакой информации о процессах, выполняющихся в JVM.

  2. Это только список JVM, к которому он имеет доступ. Это означает, что все еще существуют определенные JVM, которые остаются незамеченными.

Помня вышеупомянутые пункты, если вы заметили, что jsp Команда выдает другой результат в зависимости от режима развертывания hadoop:

  1. Локальный (или автономный) режим: демонов нет, и все работает на одной виртуальной машине Java.
  2. Псевдораспределенный режим: каждый демон (Namenode, Datanode и т. Д.) Работает на своей собственной JVM на одном хосте.
  3. Распределенный режим: каждый демон запускается на собственной JVM в кластере хостов.

Следовательно, каждый из процессов может или не может работать в той же JVM и, следовательно, jps выходной будет разным.

Теперь в распределенном режиме среда MR v2 работает в режиме по умолчанию. т.е. yarn; следовательно, вы видите работу демонов, работающих с пряжей

Namenode
Datanode
ResourceManager
NodeManager

Apache Hadoop 1.x (MRv1) состоит из следующих демонов:

Namenode
Datanode
Jobtracker
Tasktracker

Обратите внимание, что NameNode а также DataNode общие между двумя, потому что они HDFS конкретный демон, в то время как другие два MR v1 а также yarn конкретный.

Другие вопросы по тегам