概述
1)HDFS HA 之所以有这么方案,是因为在hadoop1中的hdfs中只存在1个namenode,当namenode出现故障时,整个集群都会受到影响甚至歇菜,所以hadoop在2.0以后推出了HA方案。
2)这个方案准备了2个namenode,一个active的namenode和一个standby的namenode,active的负责所有对外操作,standby的只是作为一个备份,当active的出现故障以后,standby顶上保证整个集群的运转。
3)为了保证standby和active之间能互相替换,两者之间内容必须一致,所以2.0以后给两者提供了一个叫做JNS的互相独立的进程,active进行的所有改变,都会持久化记录到JNS中。standby观察到JNS发生改变时,会把这些改变应用到自己身上,并持续观察。当故障发生时,standby切换成active,在故障发生之前两者的内容必须保持完全一致。
4)为了保证两者的block的信息都是最新的,在datenode中配置了两个namenode,通过心跳机制同时向两个namenode汇报block的有效信息。
5)为了保证只有一个active状态的namenode,不然两个namenode同时写入,会造成数据的异常或丢失,这种情况叫做“脑裂”,一方面JNS只允许一个active进行写入操作,另一方面在JNS中会有一个防护进程,当故障转移时,不确认之前的active是否停止,这个进程会主动进行切断之前的ac
最后
以上就是文静抽屉为你收集整理的HDFS HA 过程、架构、zookeeper如何实现自动故障转移的全部内容,希望文章能够帮你解决HDFS HA 过程、架构、zookeeper如何实现自动故障转移所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复