请选择 进入手机版 | 继续访问电脑版

好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
我的账户
好程序员

专注高端IT职业培训

亲爱的猿猿,欢迎!

已有账号,请

如尚未注册?

[BigData] Hadoop阶段的高可用配置

[复制链接]
沫沫老师 发表于 2018-12-6 11:09:15 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
本帖最后由 wowo 于 2018-12-11 13:30 编辑

一、什么是Hadoop的HA机制
    HA机制即Hadoop的高可用(7*24小时不中断服务),正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制。hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA。
    而HDFS 的HA主要是通过双namenode协调工作实现。双namenode协调工作的主要为以下两点:
    1.元数据管理方式需要改变,内存中各自保存一份元数据。Edits日志只能有一份,只有Active状态的namenode节点可以做写操作,两个namenode都可以读取edits。共享的edits放在一个共享存储中管理。(qjournal和NFS两个主流实现)
    2.需要一个状态管理功能模块。实现了一个zkfailover,常驻在每一个namenode所在的节点,每一个zkfailover负责监控自己所在namenode节点,利用zk进行状态标识,当需要进行状态切换时,由zkfailover来负责切换,切换时需要防止brain split脑裂现象的发生。
Hadoop阶段的高可用配置.jpg

二、Namenode的运行原理
    两台服务器上都存在一个namenode ,其中一台Namenode 处于active状态,一台处于standby状态,两台服务器数据共享,两台服务器各自存有一份元数据,但是edit数据只有一份,两台服务器只有处于active状态的namenode服务器可以对edit进行写操作,另一台服务器只能对edit进行读操作,而共享的edit放到一个共享存储中进行管理。共享存储由文件管理系统qjournal和NFS来实现。
    两台服务器的active standby状态如何管理,则需要一个管理模块:ZKFC (zookeeper failover controller) 来管理。每一个zkfc负责监控自己所在namenode节点,利用zk进行状态标识。当需要进行状态切换时,由zkfailover来负责切换,切换时需要防止brain split脑裂现象的发生。
三、什么是脑裂现象
    脑裂现象就是两台namenode都处于active状态,产生冲突,这就是脑裂。Hadoop的高可用配置要注意解决脑裂状态。那么,脑裂状态如何产生的那?当一台active状态的namenode服务器处于假死状态,那么另一台namenode服务器的zkfc收到信息,把属于它的namenode状态改变为active状态,第一台处于假死状态的namdenode又醒过来,就会产生脑裂。
    所以解决脑裂,第二台namenode的zkfc此时就会一不做二不休,把第一台处于假死状态的namenode杀掉运用ssh kill -9 namenode ,直接杀掉第一台服务器的namenode进行补刀,如果补刀不成功的话,zkfc进入第一台服务器,直接调用用户的自定义脚本程序 /home/Hadoop/kill/poweroff.sh 杀掉假死的namenode。



精彩内容,一键分享给更多人!
回复

使用道具 举报

您需要登录后才可以回帖

本版积分规则

关注我们
好程序员
千锋好程序员

北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

Copyright 2007-2019 北京千锋互联科技有限公司 .All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启