Hadoop-2.x-HDFS

Hadoop  2.0产生背景

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

Hadoop  1.x与Hadoop  2.x

  • Hadoop 2.x由HDFS、MapReduce和YARN三个分支构成;
  • HDFS:NN Federation(联邦)、HA;
  • 2.X:只支持2个节点HA,3.0实现了一主多从
  • MapReduce:运行在YARN上的MR;
    • 离线计算,基于磁盘I/O计算
  • YARN:资源管理系统

HDFS  2.x

  • 解决HDFS 1.0中单点故障和内存受限问题。
    • HDFS HA:通过主备NameNode解决
    • 如果主NameNode发生故障,则切换到备NameNode上
    • 解决内存受限问题
  • 2.x仅是架构上发生了变化,使用方式不变
  • 对HDFS使用者透明
  • HDFS 1.x中的命令和API仍可以使用

HDFS 2.x HA架构图

 

  • 主备NameNode
  • 解决单点故障(属性,位置)
  • 主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换
  • 所有DataNode同时向两个NameNode汇报数据块信息(位置)
  • JNN:集群(属性)
  • standby:备,完成了edits.log文件的合并产生新的image,推送回ANN
  • 两种切换选择
  • 手动切换:通过命令实现主备之间的切换,可以用HDFS升级等场合
  • 自动切换:基于Zookeeper实现
  • 基于Zookeeper自动切换方案
  • ZooKeeper Failover Controller:监控NameNode健康状态,
  • 并向Zookeeper注册NameNode
  • NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC 锁的NameNode变为active
posted @ 2019-07-14 12:45  Coolc  阅读(835)  评论(0编辑  收藏  举报