Hadoop gen1 vs Hadoop gen2

时间:2014-01-22 09:15:02

标签: hadoop mapreduce yarn hadoop2

我对Hadoop-2.x中tasktracker的位置感到有点困惑。

Hadoop-1.x中的守护进程namenode, datanode, jobtracker, taskracker and secondarynamenode

Hadoop-2.x中的守护进程namenode, datanode, resourcemanager, applicationmaster, secondarynamenode.

这意味着Jobtracker has split up into: resourcemanager and applicationmaster

那么tasktracker在哪里?

9 个答案:

答案 0 :(得分:5)

在YARN(Hadoop 2中的新执行框架)中,MapReduce不像以前那样存在。

YARN是一种在群集上分配资源的更通用的方法。 ResourceManager,ApplicationMaster和NodeManager现在包含新的YARN执行框架。 NodeManager是每个节点上的守护进程,所以我猜你可以说替换了TaskTracker。但现在它只是提供流程而不仅仅是映射任务和减少任务。

MapReduce仍然存在,但它现在是YARN的“应用程序”。

以下是对YARN的介绍,它将深入探讨:http://hortonworks.com/blog/introducing-apache-hadoop-yarn/

答案 1 :(得分:5)

是Jobtracker被分成了资源管理器和应用程序主机。 应用程序主服务器根据提交的作业数在一个或所有节点管理器实例上运行。 因此,当提交作业时,资源管理器与一个免费节点管理器进行对话以充当应用程序主机,并且该应用程序主机现在将成为作业跟踪器,而其他节点管理器将是它们执行Yarn子进程的任务跟踪器。 如果我错了,请纠正我。

答案 2 :(得分:2)

阅读上述链接后我得到的是

YARN通过拆分Job tracker的功能来处理经典MR的缺点

  

1.x中JobTracker的功能,即资源管理和作业调度/监视分为单独的守护进程。    - 全局ResourceManager(RM)和每个应用程序ApplicationMaster(AM)

ResourceManager - 在NameNode上运行,即主端

  • 它在所有appl中分配资源
      

    它有两个主要组件:Scheduler和ApplicationsManager。

  • 调度程序是纯调度程序
  • ApplicationsManager负责接受工作提交

NodeManager - 在DataNode上运行,即从属端

  • 是每台机器框架代理
  • 负责容器,监控其资源使用情况(cpu,内存,磁盘,网络)并将其报告给ResourceManager / Scheduler。
  

Central ResourceManager和Node特定Manager一起称为YARN

答案 3 :(得分:1)

任务跟踪器已分为 Hadoop YARN 架构中的三个组件:资源管理器,应用程序管理器和应用程序主机

YARN的基本思想是将资源管理和作业调度/监视功能分解为单独的守护进程。我们的想法是拥有全局 ResourceManager(RM)每个应用程序ApplicationMaster (AM)。应用程序可以是单个作业,也可以是作业DAG。

ResourceManager 有两个主要组件:计划程序 ApplicationsManager

Scheduler负责根据熟悉的容量,队列等约束将资源分配给各种正在运行的应用程序。调度程序是纯调度程序,因为它不执行应用程序状态的监视或跟踪。

ApplicationsManager负责接受作业提交,协商第一个容器以执行特定于应用程序的ApplicationMaster,并提供在失败时重新启动ApplicationMaster容器的服务。

per-application ApplicationMaster负责从调度程序协商适当的资源容器,跟踪其状态并监控进度。

查看文档link

有关详细信息,请查看此SE问题。

What additional benefit does Yarn bring to the existing map reduce?

答案 4 :(得分:0)

是Jobtracker被分成了资源管理器和应用程序主机。应用程序主服务器根据提交的作业数在一个或所有节点管理器实例上运行。因此,当提交作业时,资源管理器与一个免费节点管理器进行对话以充当应用程序主机,并且该应用程序主机现在将成为作业跟踪器,而其他节点管理器将是它们执行Yarn子进程的任务跟踪器。 在这里找到细节: http://ercoppa.github.io/HadoopInternals/HadoopArchitectureOverview.html

答案 5 :(得分:0)

namenode,datanode,resourcemanager,applicationmaster

您从上面的列表中错过了Hadoop-2.x中的另一个守护进程,即NodeManager。该守护进程在tasktracker等各个节点上运行。启动时,此组件向RM注册,并发送有关节点上可用资源的信息。随后的NM-RM通信将提供有关容器状态的更新 - 在节点上运行的新容器,已完成的容器等。

所以这就是发生的事情。 RM为工作分配资源。其中一个已分配的节点与applicationmaster相似,并与其他节点通信。简单来说,您现在可以认为应用程序主服务器是jobtracker而其他所有服务器都是tasktraker节点。 RM可以免费为其他用户提供更多工作。现在,这是MR v2的优点,您可以在同一个集群上运行多个MR作业以及其他应用程序,如Spark作业。 ResourceManage负责管理集群,并为作业分配资源或节点,其中一个分配的节点成为应用程序主节点。

Shahzad

答案 6 :(得分:0)

请记住以下比较 Job Tracker =资源管理器(应用程序管理器,称为容器0)+调度程序(FIFO,公平调度程序和容量调度程序)

Tasktracker =节点管理器

最初在HDPv1中提交作业时 1.作业跟踪器负责计算作业的映射器和减速器,监视死/现场任务跟踪器,如果失败则重新生成映射器和减速器。

当我们提交作业时,现在在HDPv2中

资源管理器java进程(与调度程序相同的java进程)首先在任何节点(也称为容器0)上生成应用程序管理器,然后应用程序管理器读取作业代码并计算该作业所需的资源并请求资源来自调度程序(它还监视作业队列中有多少资源)。计划程序计算并将节点名称提供给可以生成容器的AM。然后,AM在这些节点上生成容器并监视它们。在任何容器死亡的情况下,它是AM,它再次进入调度程序并协商更多资源。 因此,jobtracker的工作分为AM和YARN的调度程序。另请注意,提交的每个作业都有一个新的AM,因此可以运行多个AM,但群集上只有一个调度程序。 AM在节点管理器上生成,调度程序在RM节点上启动。

答案 7 :(得分:0)

         Hadoop 1                                      Hadoop 2
1,it is mapreduce1                                  1,it is yarn mapreduce
2, here it has job tracker,                         2,here it has resource manager  
task tracker                                        ,node manager
3,it can send another task tracker                  3,it can send resource manager
                                                     ,timeline server  which  
                                                         stores applicationhistory                                                                                              

答案 8 :(得分:0)

在Hadoop V2中,他们使用YARN框架替换旧版本。 YARN具有中央资源管理器组件,用于管理资源并将资源分配给应用程序。多个应用程序可以通过YARN在Hadoop上运行,所有应用程序都可以共享公共资源管理。

http://saphanatutorial.com/how-yarn-overcomes-mapreduce-limitations-in-hadoop-2-0/