rainit2006 / BigData-DB-SearchEngine

0 stars 0 forks source link

Hadoop2 vs Hadoop1 #7

Open rainit2006 opened 7 years ago

rainit2006 commented 7 years ago

YARNの仕組み YARNを構成するノード

YARN上のアプリケーション MapReduce以外のアプリケーションをYARN上で動作させるために、様々なプロジェクトが動いています。代表的なプロジェクトとしては、以下のものがあります。

rainit2006 commented 7 years ago

image

原 MapReduce 程序的流程及设计思路:

存在的问题:

rainit2006 commented 7 years ago

https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/images/image002.jpg yarn

重构根本的思想是将 JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的 ApplicationMaster 负责相应的调度和协调。一个应用程序无非是一个单独的传统的 MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务。ResourceManager 和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织。

原框架中核心的 JobTracker 和 TaskTracker 不见了,取而代之的是 ResourceManager, ApplicationMaster 与 NodeManager 三个部分。

Yarn 框架相对于老的 MapReduce 框架什么优势呢?我们可以看到:

  1. 这个设计大大减小了 JobTracker(也就是现在的 ResourceManager)的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。
  2. 在新的 Yarn 中,ApplicationMaster 是一个可变更的部分,用户可以对不同的编程模型写自己的 AppMst,让更多类型的编程模型能够跑在 Hadoop 集群中,可以参考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。
  3. 对于资源的表示以内存为单位 ( 在目前版本的 Yarn 中,没有考虑 cpu 的占用 ),比之前以剩余 slot 数目更合理。
  4. 老的框架中,JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行状况,现在,这个部分就扔给 ApplicationMaster 做了,而 ResourceManager 中有一个模块叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是监测 ApplicationMaster 的运行状况,如果出问题,会将其在其他机器上重启。
  5. Container 是 Yarn 为了将来作资源隔离而提出的一个框架。这一点应该借鉴了 Mesos 的工作,目前是一个框架,仅仅提供 java 虚拟机内存的隔离 ,hadoop 团队的设计思路应该后续能支持更多的资源调度和控制 , 既然资源表示成内存量,那就没有了之前的 map slot/reduce slot 分开造成集群资源闲置的尴尬情况。
rainit2006 commented 7 years ago

Hadoop Architecture Hadoop framework includes following four modules:

rainit2006 commented 7 years ago

hadoop1 hadoop2 hadoop2 hadoop2-2 hadoop2-3

rainit2006 commented 7 years ago

Hadoop Yarn 框架 Demo 示例 Demo 场景介绍:Weblogic 应用服务器日志分析 https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/

rainit2006 commented 7 years ago

yarn