Understanding mapreduce.framework.name wrt Hadoop



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

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

如果不正确,请纠正我。

我知道了以下配置参数:


mapreduce.framework.name 可以取的值:localclassicyarn

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

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

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

MRV1 和 MR V2 只是关于如何管理资源和执行作业。当前的Hadoop版本能够同时实现这两种功能(甚至可以在本地轻量级模式下)。当您将值设置为yarn时,您只是指示框架使用yarn方法来执行作业。同样,当您将其设置为local时,您只需告诉框架没有要执行的集群,并且所有集群都在 JVM 中。它不是MR V1 和 MR V2 框架的不同基础结构;它只是工作执行的方式,它发生了变化。

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

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

MRv2(又名YARN,"又一个资源协商器")每个集群都有一个资源管理器,每个数据节点运行一个节点管理器。对于每个作业,一个从属节点将充当Application Master,监视资源/任务等。

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

编辑:基于评论

jps(Java虚拟机进程状态)是一个JVM工具,根据官方页面:

jps 工具列出了已检测的热点 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;因此,您会看到特定于 Yarn 的守护进程正在运行

Namenode
Datanode
ResourceManager
NodeManager

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

Namenode
Datanode
Jobtracker
Tasktracker

请注意,NameNodeDataNode在两者之间是通用的,因为它们HDFS特定的守护程序,而其他两个是MR v1的,并且yarn特定于。

相关内容

  • 没有找到相关文章

最新更新