目录
一、Hadoop 2.0产生背景
–Hadoop 1.0中HDFS和MapReduce在高可用、扩展性等方面存在问题
–HDFS存在的问题
•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上
–解决内存受限问题
- •HDFS Federation(联邦)
- •水平扩展,支持多个NameNode;
- •(2)每个NameNode分管一部分目录;
- •(1)所有NameNode共享所有DataNode存储资源
–2.x仅是架构上发生了变化,使用方式不变
–对HDFS使用者透明
–HDFS 1.x中的命令和API仍可以使用
四、HDFS 2.0 HA(高可用)

- ZKFC(蓝色背景的大圈):自动故障转移,jvm进程
- ZK (蓝色背景的小圈):分布式协调
ZKFC(与之对应的NN在同一物理操作系统)监控硬件、软件、NN、操作系统,看其是否还健康。
当集群第一次开机时有一个NN是Active 另外一个是Standby,那么谁是Active呢,要看ZK来分布式协调,两个ZKFC去ZK
中争抢创建,谁创建上就是Active。
ZK的事件监听和回调,当一个NN1挂掉,对应的ZKFC1知道后去ZK把自己创建的东西删掉,删掉这个事件回调一个事件,在另一个ZKFC把自己对应的NN升为Active
若ZKFC1挂掉,NN1还活着,ZK把对应的节点删掉,另一个ZKFC会把NN1降为Standby,自己的NN升为Active
解决方法
–主备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
五、HDFS 2.x Federation(联邦)
–
–通过多个namenode/namespace把元数据的存储和管理分散到多个节点中,使到namenode/namespace可以通过增加机器来进行水平扩展。
–能把单个namenode的负载分散到多个节点中,在HDFS数据规模较大的时候不会也降低HDFS的性能。可以通过多个namespace来隔离不同类型的应用,把不同类型应用的HDFS元数据的存储和管理分派到不同的namenode中。
本文探讨Hadoop 2.0如何通过HA和Federation解决Hadoop 1.0中HDFS和MapReduce存在的单点故障、扩展性及内存限制等问题。介绍HDFS 2.x中主备NameNode机制与基于Zookeeper的自动故障转移,以及通过多个NameNode实现的水平扩展。
2万+

被折叠的 条评论
为什么被折叠?



