1

我正在学习 Hadoop,并开始知道该框架有两个版本,即:Hadoop1 和 Hadoop2。

如果我的理解是正确的,在 Hadoop1 中,执行环境基于两个守护进程,即TaskTrackerJobTracker而在 Hadoop2(又名纱线)中,执行环境基于“新守护进程”,即ResourceManager, NodeManager, ApplicationMaster.

如果这不正确,请纠正我。

我知道了以下配置参数:

mapreduce.framework.name
可以取的可能值:local, classic,yarn

我不明白它们实际上是什么意思;例如,如果我安装 Hadoop 2 ,那么它怎么会有旧的执行环境(有TaskTracker, JobTracker)。

谁能帮我这些值是什么意思?

4

1 回答 1

5
  • 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 的信息。

所以,

  1. jps不是一个大数据工具,而是一个讲述 JVM 的 java 工具,但它并没有透露任何关于在 JVM 中运行的进程的信息。

  2. 它只列出 JVM,它可以访问。这意味着仍有某些 JVM 未被检测到。

牢记以上几点,如果您观察到该jsp命令根据 hadoop 部署模式发出不同的结果:

  1. 本地(或独立)模式:没有守护进程,一切都在单个 JVM 上运行。
  2. 伪分布式模式:每个守护进程(Namenode、Datanode 等)在单个主机上的自己的 JVM 上运行。
  3. 分布式模式:每个守护进程在其自己的 JVM 上跨主机集群运行。

因此,每个进程可能会或可能不会在同一个 JVM 中运行,因此jps输出会有所不同。

现在在分布式模式下,MR v2 框架在默认模式下工作。即yarn;因此您会看到特定于纱线的守护进程正在运行

Namenode
Datanode
ResourceManager
NodeManager

Apache Hadoop 1.x (MRv1) 包含以下守护进程:

Namenode
Datanode
Jobtracker
Tasktracker

请注意,NameNodeandDataNode在两者之间是通用的,因为它们是HDFS特定的守护进程,而其他两个是MR v1yarn特定的。

于 2018-03-05T20:10:29.277 回答