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
“Yet Another Resource Negotiator”)对每个集群都有一个资源管理器,每个数据节点都运行一个节点管理器。对于每个作业,一个从节点将充当Application Master
监控资源/任务等。
本地模式用于在单个机器/JVM 中模拟和调试 MR 应用程序。
编辑:基于评论
jps
(Java Virtual Machine Process Status)是一个JVM工具,根据官方页面:
jps 工具列出目标系统上检测的 HotSpot Java 虚拟机 (JVM)。该工具仅限于报告有关它具有访问权限的 JVM 的信息。
所以,
jps
它不是一个大数据工具,而是一个讲述 JVM 的 java 工具,但它并没有透露任何关于在 JVM 中运行的进程的信息。
它只列出 JVM,它可以访问。这意味着仍有某些 JVM 未被检测到。
牢记以上几点,如果您观察到该jsp
命令根据 hadoop 部署模式发出不同的结果:
- 本地(或独立)模式:没有守护进程,一切都在单个 JVM 上运行。
- 伪分布式模式:每个守护进程(Namenode、Datanode 等)在单个主机上的自己的 JVM 上运行。
- 分布式模式:每个守护进程在其自己的 JVM 上跨主机集群运行。
因此,每个进程可能会或可能不会在同一个 JVM 中运行,因此jps
输出会有所不同。
现在在分布式模式下,MR v2 框架在默认模式下工作。即yarn
;因此您会看到特定于纱线的守护进程正在运行
Namenode
Datanode
ResourceManager
NodeManager
Apache Hadoop 1.x (MRv1) 包含以下守护进程:
Namenode
Datanode
Jobtracker
Tasktracker
请注意,NameNode
andDataNode
在两者之间是通用的,因为它们是HDFS
特定的守护进程,而其他两个是MR v1
和yarn
特定的。