大数据培训面试题-namenode的HA实现

发布时间:2020年03月05日作者:atguigu浏览次数:1,055

大数据培训

在同一个HDFS集群,运行两个互为主备的NameNode节点。一台为主Namenode节点,处于Active状态,一台为备NameNode节点,处于Standby状态。其中只有Active NameNode对外提供读写服务,Standby NameNode会根据Active NameNode的状态变化,在必要时切换成Active状态。

大数据培训

第一种实现方式基于zk的选举方式实现

实现思想|:2个Namenode分别独立运行在2个物理节点上,对外提供服务的为主Namenode,即为Active  Namenode,处于热备状态的为Standby  Namenode  ,当Active  Namenode所在的机器宕机之后,Standby具备什么样的条件才能接受之前Active  Namenode的工作呢?我主要总结2点

大数据培训

a:Standby Namenode拥有之前Active namenode的对外提供的所有服务信息,这就需要ZK维护一组守护进程journal node,,处于工作状态的Active  node需要将自己对外提供的所有服务信息写在一半以上的journode node的目录里(这些信息被记为editlog) 处于热备状态的 Standby namenode会随时监听journalode的工作目录,只要有所更新改变,热备状态下的Standby  node会读取这些信息。并更新自己内部的名命空间,此时Standy namenode和Active  namenode都拥有对外提供的服务信息

大数据培训

b:所有的Datanode都要向主Namenode和热备Namenode进行心跳报告,使得2个namenode都了解datanode的健康状态以及数据存放在哪个Datanode上.

大数据培训

      总上所述,基于zk实现的Ha的机制,具备以上条件,就是一个真正意义上的HA

第二种实现方式,基于facebook的Avator  node实现 

大数据培训

实现思想:基于这种方式是需要进行人工的切换来实现,Avator node是对namenode的进行的封装,处于工作状态的是primary avator,处于热备状态的是standby  avator,其中primary avator相当于Active node,standby  avator是对namenode和secondary node进行的封装,2者共享同一个editlog工作目录,使得2个namenode都拥有相同的对外提供服且datanode都向2个封装的namenode报告心跳报告,当primary avator所在的机器挂掉之后,管理人员可以手动切换standby  avator对外提供服务


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦3层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)

成都市成华区北辰星拱青创园综合楼3层(成都校区)