HDFS2.0概述
一背景,Hadoop1.0中HDFS和MapReduce在高可用,扩展性等方面存在问题
HDFS存在问题,1,NameNode单点故障,难以应用于在线场景。2,NameNode压力过大,且内存受限,影响系统扩展。
MapReduce存在的问题,1,JobTracker访问压力大,影响系统扩展性,2,难以支持除MapReduce之外的计算框架,比如Spark,Storm等
二 Hadoop1.X与Hadoop2.X区别
解决HDFS1.0种单点故障和内存受限问题,
1,解决单点故障:HDFS HA :通过主备NameNode解决,如果主NameNode发生故障,则切换到备NameNode
2,解决内存受限问题:HDFS Federation(联邦),水平扩展,支持多个NameNode,每个NameNode分管一部分目录,所有NameNode共享所有DataNode存储资源
Hadoop2.X由HDFS,MapReduce和Yarn三个分支构成
1,HDFS:NN Federation(联邦), HA ,2.X:只支持2个节点HA,3.0实现了一主多从
2,MapReduce:运行在YARN上的MR,离线计算,基于磁盘I/O计算
3,YARN:资源管理系统
三,2.X仅仅是架构上发生了变化,使用方式不变,对HDFS使用者透明,HDFS 1.X中的命令和API仍可以使用
Hadoop2.0-HA HDFS架构
一架构图
二架构解析
1 主备NameNode
解决单点问题,主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换;所有DataNode同时向两个NameNode汇报数据块信息
两种切换选择,手动切换:通过命令实现主备之间的切换,可以用HDFS升级等场合;*切换:基于Zookeeper实现;Zookeeper FailOver Controller :监控NameNode健康状态并向Zookeeper注册NameNode,NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC锁的NameNode变为active
2 JN:日志同步系统
3 ZKFC:Zookeeper FailOver Controller,自动切换系统