因为namenode存在单点失效问题。如果namenode失效了,那么所有的客户端,包括MR作业,均无法读或者写文件,因为你namenode是唯一存储元数据与文件到数据库映射的地方。即使使用了2NN节点,也无法做到做到完全恢复,因为2NN不算是namenode的一个热备。
二、Hdfs的高可用 1、机制HDFS HA配置了一对活动-备用namenode。当活动namenode失效。备用namendoe就会接管它的任务并开始服务与来自客户端的请求,不会有任何明显的中断。
2、需要做哪些修改(1)namenode之间需要通过高可用共享存储实现编辑日志的共享。
(2)datanode需要同时向两个namenode发送心跳和块汇报信息,因为数据块的映射信息存储在namenode的内存中,而非磁盘。这样发生错误切换时,Standby节点就不需要等待所有的数据节点进行全量数据块汇报,而直接可以切换到Active状态。
(3)辅助namenode的角色被备用namenode所包含,备用namenode为活动的namenode命名空间设置周期性检查点。
3、两种高可用共享存储方式NFS过滤器和群体日志管理器(QJM)
4、故障转移默认使用ZooKeeper来确保有且仅有一个活动namenode,每一个namenode运行着一个故障转移控制器,其工作就是监视宿主namenode是否失效(通过一个简单的心跳机制实现)并在namenode失效时进行故障切换。