Hadoop 2.0产生背景

  • Hadoop1.0中HDFS和MapReduce在高可用、扩展性等方面存在问题
  • HDFS存在的问题
  • NameNode单点故障,难以应用于在线场景
  • NameNode压力过大,且内存受限,影响系统扩展性
  • MapReduce存在的问题
  • JobTracker访问压力大,影响系统扩展性
  • 难以支持除MapReduce之外的计算框架,比如Spark 、Storm等

 MapReduce是离线计算框架,计算时间会比较长
 Spark是内存计算框架,更快
 Storm是流计算框架,可实时获取计算结果

Hadoop 1.x 与Hadoop 2.x

 

 

  • Hadoop 2.x由HDFS、MapReduce和YARN三个分支构成
  • HDFS : NN Federation、HA;
  • MapReduce : 运行在YARN上的MR
  • YARN : 资源管理系统(内存、CPU资源)

Federation把元数据分成两个独立的NameNode去工作。
YARN知道任何一台机器的使用情况,在执行任务的时候,首先去YARN上申请,YARN 分配到某台机器上去执行,可做到资源不浪费

HDFS存储的数据可由MapReduce进行计算,也可以由其它的计算框架计算

HDFS 2.x优点

  • 解决HDFS 1.0中单点故障和内存受限问题
  • 解决单点故障
  • HDFS HA : 通过主备NameNode解决(只有一个NameNode正常工作,其它都是备用)
  • 如果主NameNode发生故障,则切换到备NameNode上
  • 解决内存受限问题
  • HDFS Federation(联邦)
  • 水平扩展,支持多个NameNode
  • 每个NameNode分管一部分目录(相互独立)
  • 所有NameNode共享所有DataNode存储资源
  • 2.x仅是架构上发生了变化,使用方式不变
  • 对HDFS使用者透明
  • HDFS 1.X中的命令和API仍可以使用