Понимание 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 версии 1local
для локальных прогонов рабочих мест 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, для которых у него есть разрешения на доступ.
Так,
jps
это не инструмент больших данных, скорее инструмент Java, который рассказывает о JVM, однако он не разглашает никакой информации о процессах, выполняющихся в JVM.Это только список JVM, к которому он имеет доступ. Это означает, что все еще существуют определенные JVM, которые остаются незамеченными.
Помня вышеупомянутые пункты, если вы заметили, что jsp
Команда выдает другой результат в зависимости от режима развертывания hadoop:
- Локальный (или автономный) режим: демонов нет, и все работает на одной виртуальной машине Java.
- Псевдораспределенный режим: каждый демон (Namenode, Datanode и т. Д.) Работает на своей собственной JVM на одном хосте.
- Распределенный режим: каждый демон запускается на собственной 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
конкретный.