了解 mapreduce.framework.name wrt Hadoop

Understanding mapreduce.framework.name wrt Hadoop

我正在学习 Hadoop 并了解到该框架有两个版本:Hadoop1 和 Hadoop2。

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

如有不妥请指正

我了解到以下配置参数:

mapreduce.framework.name
possible values which it can take: local , classic , yarn

我不明白他们到底是什么意思;例如,如果我安装 Hadoop 2,那么它怎么会有旧的执行环境(有 TaskTrackerJobTracker)。

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

  • yarn代表MR版本2。
  • classic 用于 MR 版本 1
  • local 用于本地 运行 的 MR 作业。

MR V1 和 MR V2 只是关于如何管理资源和执行作业。当前的 hadoop 版本具备这两种能力(甚至在本地轻量级模式下)。当您将值设置为 yarn 时,您只是在指示框架使用 yarn 方式来执行作业。类似地,当您将它设置为 local 时,您只是告诉框架没有要执行的集群,并且它全部在 JVM 中。它不是 MR V1 和 MR V2 框架的不同基础架构;它只是作业执行的方式,它发生了变化。

jobTrackerTaskTracker等都只是守护线程,在需要时产生并被杀死。

MRv1 使用 JobTracker 创建任务并将其分配给数据节点。这被发现在处理大型集群时效率太低,导致 yarn

MRv2(又名 YARN、"Yet Another Resource Negotiator")每个集群都有一个资源管理器,每个数据节点 运行 都有一个节点管理器。对于每个作业,一个从节点将充当Application Master、监控resources/tasks等

本地模式用于在单个 machine/JVM.

中模拟和调试 MR 应用程序

编辑:基于评论

jps(Java虚拟机进程状态)是一个JVM工具,根据official page

The jps tool lists the instrumented HotSpot Java Virtual Machines (JVMs) on the target system. The tool is limited to reporting information on JVMs for which it has the access permissions.

所以,

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

  2. 它只列出它有权访问的 JVM。这意味着仍有某些 JVM 未被发现。

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

  1. 本地(或独立)模式:单个 JVM 上没有守护进程和所有内容 运行。
  2. Pseudo-Distributed 模式:每个守护进程(Namenode、Datanode 等)运行 位于单个主机上自己的 JVM 上。
  3. 分布式模式:每个守护进程 运行 在其自己的 JVM 上跨主机集群。

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

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

Namenode
Datanode
ResourceManager
NodeManager

Apache Hadoop 1.x (MRv1) 由以下守护进程组成:

Namenode
Datanode
Jobtracker
Tasktracker

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