我正在学习hadoop,并且知道有两个版本的框架,即hadoop1和hadoop2。
如果我的理解是正确的,在hadoop1中,执行环境基于两个守护进程,即 TaskTracker
以及 JobTracker
而在hadoop2(aka yarn)中,执行环境是基于“新守护进程”即 ResourceManager
, NodeManager
, ApplicationMaster
.
如果这不正确,请纠正我。
我了解到以下配置参数:
mapreduce.framework.name文件
可能取值: local
, classic
, yarn
我不明白他们到底是什么意思;例如,如果我安装了hadoop2,那么它怎么会有旧的执行环境(它有 TaskTracker
, JobTracker
).
有人能帮我解释一下这些价值观是什么意思吗?
1条答案
按热度按时间p8h8hvxi1#
yarn
代表mr版本2。classic
适用于mr版本1local
为乔布斯先生在当地的经营做准备。mrv1和mrv2只是关于如何管理资源和执行作业。当前的hadoop版本能够同时实现这两种功能(甚至在本地轻量级模式下)。当您将值设置为
yarn
,您只是简单地指示要使用的框架yarn
执行作业的方法。同样地,当你把它设置为local
,您只需告诉框架,没有集群可供执行,而所有集群都在jvm中。对于mrv1和mrv2框架来说,它不是一个不同的基础设施;这只是作业执行的方式,它会改变。jobTracker
,TaskTracker
etc都只是守护进程线程,它们在需要时生成并被杀死。mrv1使用
JobTracker
创建任务并将其分配给数据节点。这在处理大型集群时效率太低,导致yarn
mrv2(又名YARN
,“又一个资源协商者”)为每个集群都有一个资源管理器,每个数据节点都运行一个节点管理器。对于每个作业,一个从属节点将充当Application Master
,监视资源/任务等。给出了在单机/jvm中模拟和调试mr应用程序的本地模式。
编辑:基于评论
jps
(java虚拟机进程状态)是一个jvm工具,根据官方页面:jps工具列出了目标系统上插入指令的热点java虚拟机(jvm)。该工具仅限于报告具有访问权限的JVM上的信息。
所以,
jps
它不是一个大数据工具,而是一个讲述jvm的java工具,但是它不会泄露jvm中运行的进程的任何信息。它只列出jvm,它有权访问。这意味着仍有某些JVM未被发现。
记住以上几点,如果你注意到的话
jsp
命令根据hadoop部署模式发出不同的结果:本地(或独立)模式:没有守护程序,所有东西都在单个jvm上运行。
伪分布式模式:每个守护进程(namenode、datanode等)在单个主机上运行自己的jvm。
分布式模式:每个守护进程在其自己的jvm上跨主机集群运行。
因此,每个进程可能在同一jvm中运行,也可能不在同一jvm中运行,因此
jps
输出将不同。现在在分布式模式下,mrv2框架在默认模式下工作。即。
yarn
; 因此您可以看到特定于Yarn的守护进程正在运行apache hadoop 1.x(mrv1)由以下守护程序组成:
请注意
NameNode
以及DataNode
因为他们是HDFS
另外两个是MR v1
以及yarn
具体的。