理解 mapreduce.framework.name wrt Hadoop

Cur*_*ind 1 hadoop mapreduce mrv2 hadoop-yarn hadoop2

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

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

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

我开始知道以下配置参数:

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

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

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

Gya*_*edi 5

  • 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,监控资源/任务等。

本地模式用于在单个机器/JVM 中模拟和调试 MR 应用程序。

编辑:基于评论

jps(Java Virtual Machine Process Status)是一个JVM工具,根据官方页面

jps 工具列出了目标系统上已检测的 HotSpot Java 虚拟机 (JVM)。该工具仅限于报告有关其具有访问权限的JVM 的信息。

所以,

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

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

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

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

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

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

Namenode
Datanode
ResourceManager
NodeManager
Run Code Online (Sandbox Code Playgroud)

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

Namenode
Datanode
Jobtracker
Tasktracker
Run Code Online (Sandbox Code Playgroud)

请注意,NameNodeDataNode是常见的两者之间,因为它们是HDFS特定服务进程,而其他两个是MR v1yarn具体。