【精】聊聊HDFS的高可用架构

通过本文,你可以学到如下内容:
①HDFS的(High Availability,HA)架构。
②HDFS-HA的实现原理;ZKFC三大组件,切主的完整过程。
③优化切主速度+一些个人思考

##一、HDFS的高可用架构

为什要做HA呢?想象一下没有HA时,如果HDFS集群在正常运行的过程中,NameNode节点发生故障,比如机器断电、网络故障等等,那么集群中失去了文件系统的元数据信息,整个集群将会不可用,直到NameNode节点恢复正常。这种情况也就是俗称的单点故障问题。HA就是为了解决这个问题的。HDFS的HA有两个NameNode,一个Active状态,一个Standby状态。如下图所示:

【精】聊聊HDFS的高可用架构_第1张图片

Active NN处理客户端的读写请求,将文件系统变化的editlog写到共享存储中(一般是JournalNode上),Standby NN去共享存储拉editlog,然后perform,让Standby NN自己的内存中的FSimage与Active NN尽量保持同步。StandBy节点也接收DataNode的块汇报,这样在切主的时候就会很快,不用再去计算块存放的信息。

同时还引入了ZKFC进程,用来监控NameNode的健康状态,如果Active NN的状态异常,ZKFC会进行重新选主(选主的过程依赖了Zookeeper的一致性),必要时也会fence掉(通过配置项中传入的脚本彻底杀死进程)原来的A

你可能感兴趣的:(HDFS全方位实战,hadoop,分布式,hdfs,大数据)