1.NameNode单点故障
概念:如果NN主机宕机,导致整个HDFS集群中所有节点全部停止工作。
解决思路:为NameNode主机提供一个NameNode备机。
方法:
1.实时监控NameNode11宕机
2.发现NameNode11宕机,触发一段操作。启动NameNode12备机,接管HDFS管理。
方案:
Hadoop2版本提供ZKFC,基于zk实现的故障转移程序,本质上是zk的一个客户端程序。
1:启动本级namenode,像zk注册节点znode。
2:监听该节点znode变化。
3:防止nn主机假死,远程登录nn原主节点ssh hadoop11,杀死nn。killall命令。
-
注意
-
①.需要免密登录
-
②.需要安装psmisc
补充:如果zk认为NN11宕机,启动NN12为主机后,无论NN11是否宕机,都会执行一段代码,杀死NN11。
2.NameNode备机空闲+NameNode备机转主机没有元数据。
概念:NN主机宕机,NN备机转主机,缺少元数据信息。
解决:
1.NameNode12备机,充当SecondaryNameNode的职责。
2.Hadoop提供QJM(quarum journal node),基于zk实现的分布式文件共享(同步)系统。
3.NameNode主备自动转换,客户端无法知晓入口地址
解决方案
1.java客户端访问HDFS的入口不能写死任何一个NN入口地址,写虚拟ip入口地址。
2.在服务器端配置,NN11主机和NN12备机的ip地址挂载虚拟ip节点之下。
3.客户端通过虚拟ip读取到真正的ip是谁,取决于当时NameNode的主机是谁。
4.ResourceManager单点故障
基于zk实现ResourceManager的故障转移切换机制