1,hadoop 2.0 产生背景 2,hadoop 2.0 基本构成 3,HDFS 2.0 4 YARN 5 MapReduce On YARN 6 Hadoop 2.0初体验 7 总结 1,hadoop 2.0产生背景: 两个概念: hadoop生态系统:由hadoop,hbase,hive,pig,sqoop,flume,mahout,zookeeper等构成。 hadoop:hadoop只是hadoop生态系统的一个组成部分,由分布式文件系统hdfs和分布式计算框架MapReduce组成。hadoop2.0由hdfs,yarn,mr组成 通俗的hadoop是指hadoop生态系统。 hdfs存在的问题: NameNode单点故障,难以应用于在线场景(不能提供“服务”这样的长期在线,程序一旦挂掉没有备用方案) NameNode压力过大(所有通信都通过namenode转向其他服务),且内存受限(元数据信息),影响系统扩展性(内存小,hdfs就不能随意加datanode)。 MapReduce存在的问题: JobTracker单点故障 JobTracker访问压力大,影响系统扩展性 难以支持除Mapreduce之外的计算框架,比如Spark,Storm,Tez(资源调度,和计算在一起的架构不好)等 2 hadoop 2.0基本构成
注解1:MapReduce同时负责资源管理和任务调度,hadoop 2.0将资源管理独立出来成为yarn,mr2.0仅仅是运行在yarn上的框架之一。 Hadoop 2.0由HDFS,Mapreduce和Yarn三个分支构成; HDFS:NN Federation(分目录管理),HA(多个NameNode) Mapreduce:运行在yarn上的mr yarn:资源管理器。 下载地址:http://hadoop.apache.org/releases.html svn:http://svn.apache.org/repos/asf/hadoop/common/branches/ 这里只有源代码,需编译才可使用 3 HDFS2.0 解决单点故障 通过主备NameNode解决 如果主NameNode发生故障,则切换到备NameNode上。 解决内存受限问题,(含并发过大) 水平扩展,支持多个NameNode 每个NameNode分管一部分目录;(每个namenode管理的文件数减少) 所有NameNode共享所有DataNode存储资源 4 Yarn Yet Another Resource Negotiator 核心思想:将mrv1中JobTracker的资源管理和任务调度两个功能分开。分别由ResourceManager和ApplicationMaster进程实现。 ResourceManager:负责整个集群的资源管理和调度 ApplicationMaster:负责应用程序相关的事务,比如任务调度,任务监控和容错 Yarn的引入,使得多个计算框架可运行在一个集群中; :每个应用程序对应一个ApplicationMaster :目前多个计算框架可以运行在yarn上,比如Mapreduce,spark,storm等 5 Mapreduce on yarn(mrv2) 将Mapreduce作业直接运行在yarn上,而不是由JobTracker和TaskTracker构建在MRv1系统中; 基本功能模块: yarn:负责资源管理和调度 MRAppMaster:负责任务切分,任务调度,任务监控和容错等 MapTask/ReduceTask:任务驱动引擎,与MRv1一致 每个应用程序对应一个MRAppMaster 单个应用程序运行失败,不会影响其他应用程序。 负责应用程序相关的事情,包括将yarn分配的资源二次分配给内部的任务,任务切分,监控容错等。
原文:http://www.cnblogs.com/i80386/p/3613666.html