Hadoop2.0新特性

一、大数据处理系统

        大量节点服务器组成集群,用户根据需要输入不同处理请求,经过复杂计算过程,输出对应结果,整个计算过程对用户来说透明。 对于这个大量节点组成的数据处理系统,需要考虑的问题有很多,比如数据存储、数据处理、资源管理、容错性、扩展性、较好的吞吐量......等问题。在目前来说,Hadoop框架可以有效解决以上大部分问题,而且由于Hadoop对于集群上的节点硬件要求不高,因此目前很多公司都采用Hadoop作为解决方案。

二、Hadoop1.0简单回顾介绍

(1)Hadoop1.0包含了以下几个模块:

  • Common(http、io、net等)
  • HDFS(数据存储)
  • MapReduce(数据处理、任务调度、资源调度)

    其中,MapReduce和HDFS依赖于Common提供的通用功能。MapReduce同时依赖于HDFS提供的数据存储功能。

(2)HDFS架构

 

  • Master/Slave架构(NameNode/DataNode)
  • NameNode负责管理和控制文件读写(metadata保存在fsimage,修改保存在edits)
  • DataNode负责存储具体文件block分块,并向NameNode定期汇报
  • Secondary NameNode定期为NameNode合并fsimage和edits
  • 文件被分成不同的block块,每块都会经过复制并存储到不同的DataNode上,提供高容错性。
  • 提供接口尽量保证data-local数据处理。
  • 缺点:单点故障问题、NameNode容易负载过大

(3)MapReduce架构

  • JobTracker负责分配TaskTracker的资源和调度作业
  • TaskTracker使用“slot”等量划分本节点上资源量(CPU、内存等)
  • “slot”分为Map Slot和Reduce Slot两种,分别给Map Task和ReduceTask使用
  • 集中式调度架构
  • 缺点:可扩展性差、资源利用率低、多框架支持不足
三、Hadoop2.0特性介绍

(1)Hadoop2.0主要包含了以下几个模块:

  • Common
  • HDFS(新增HA、Federation特性,解决单点故障以及NameNode负载过大问题)
  • YARN(任务调度和集群资源管理)(新增模块)
  • MapReduce(基于YARN的数据处理)

(2)Hadoop 1.0 vs  Hadoop 2.0

    从图中可以看到HDFS在2.0里增加了HA(高可用性)特点。另外,1.0的MapReduce模块的功能被细化了。2.0中YARN是整个Hadoop的资源管理模块,MapReduce主要处理逻辑还是沿用1.0的,不过为了能够在YARN上运行,增加了不少处理。另外,2.0还允许不同的开源框架在YARN上一并共享集群资源。

(3)HDFS高可用性

  • 利用共享存储来在两个NN间同步edits信息
  • DN同时向两个NN汇报块信息
  • Fence机制可以防止“脑裂”(两个Active NameNode)进行修改共享存储、一个NN响应客户端、一个NN向DN下发命令
  • 用于监视和控制NN进程的ZKFailoverController进程
  • 共享存储模块有NFS/QJM方案
  • Fence有SSH/Shell方案

(4)HDFS Federation

  • 多个NN共用一个集群里DN上的存储资源,每个NN都可以单独对外提供服务
  • 每个NN都会定义一个存储池,有单独的id,每个DN都为所有存储池提供存储
  • DN会按照存储池id向其对应的NN汇报块信息,同时,DN会向所有NN汇报本地存储可用资源情况
  • Performance - 可以增加读写吞吐量
  • Isolation - 有助于隔离不同用户的数据

(5)YARN模块介绍

  • RM负责资源管理和调度控制
  • AM负责与RM请求分配资源并分配给内部任务,通知NM启动/停止任务
  • NM定期向RM汇报资源和Container状况
  • Container作为YARN的一个抽象概念,封装了节点的多维度资源(CPU,内存),方便划分每个节点的资源
  • 双层调度架构 

  • 分离资源管理ResourceManager/NodeManager和任务管理ApplicationMaster

  •  支持多种框架共享集群,提高资源利用率 

  • 暂不支持动态资源管理、细粒度资源控制等

(6)MapReduce on YARN

  • MRAppMaster - 实现MapReduce的ApplicationMaster
  • Map/Reduce作业管理
  • 向RM申请资源并且再分配到具体的Map/Reduce Task
  • Container启动与释放
  • 作业恢复
  • 采用MRv1的Map/Reduce Task处理逻辑,在Shuffle阶段进行优化

四、基于YARN的开源框架

  • Tez(DAG计算框架)Hive新引擎stinger基于Tez
  • Spark(内存计算框架,可多个并行任务迭代计算)
  • Impala (交互式低延迟基于HDFS的SQL引擎)
  • Drill(Google’s Dremel的实现,低延迟基于HDFS的SQL引擎。YARN版本开发中)
  • 还有各种例如图形计算等开源框架

五、Hadoop2.0升级过程问题

  • 没有了Slot的概念,资源分配要显示指示集群可用内存以及CPU,要注意选择合适值,超过阀值会被杀死(可配置)
  • HBase的0.94版本默认不兼容Hadoop2,选择升级到0.98版本
  • HBase的lib依赖要替换为Hadoop2.6.0
  • 需要更新服务器的GLIBC到2.14版本
  • HDFS启用了NameService机制,因此必须更新Hive、HBase的metadata的hdfs location,如: hdfs://namenode.demo.com -> hdfs://mydemo
  • New Web UI 查看NameNode状态(NN1和NN2分别为Active和StandBy NameNode): http://namenode1.com:50070http://namenode2.com:50070 查看YARN状态(包括各个Application状态): http://yarnnode.com:8088

你可能感兴趣的:(hadoop,大数据)