• HDFS HA(High Availability)高可用性


    HDFS HA(High Availability)高可用性
    参考文献:

    官方文档

    全文翻译

    Hadoop组件之-HDFS(HA实现细节)


    这张图片的个人理解
    由于NameNode在Hadoop1只有一个节点,可能存在(SPOF)single point of file单节点故障。包括机器故障,软件硬件升级等。
    在Hadoop2砍死你使用两台机器配置为NameNode,在任何时候,只有一个处于Active状态。为了保证两个NameNode节点的数据统一性,1:datanode同时向两个NameNode发送心跳和块报告;2:NameNode中磁盘存储的文件主要有镜像文件和编辑日志,通过JournalNode日志节点保证edits文件的可靠性。如下图:

    ![](http://images2015.cnblogs.com/blog/1047249/201707/1047249-20170709182235228-2073804790.png)
    无ZKFC
    ![](http://images2015.cnblogs.com/blog/1047249/201707/1047249-20170710113906134-727438154.jpg)
    有ZKFC
    active的NameNode向JournalNode写如日志文件,standby的NameNode读取JournalNode中的数据,以达到编辑日志文件的同步。 通过Zookeeper的ZKFailoverContral来监控active的健康状态,一旦出现问题,安排Client访问第二个NameNode,从而实现熱备。

    需要配置的四个地方(遵循官方文档即可)

    1.share edits 
    	JournalNode
    2.NameNode
    	Active,Standby
    3.Client
    	Proxy代理(Zookper)
    4.fence(篱笆)
    	同一时刻仅有一个NameNode对外提供服务
    	隔离方式:
    		SSHfence:两个NameNode之间相互能够无密码登录
    

    hdfs-site.xml
    core-site.xml

    启动HA

    #1.在各个journalnode节点上启动journalNode服务
    $ sbin/hadoop-daemon.sh start journalnode
    #2.在nn1上对其进行格式化并启动
    $ bin/hdfs namenode -format
    $ sbin/hadoop-daemon.sh start namenode
    #3.在nn2上同步nn1上的源数据
    $ bin/hdfs namenode -bootstrapStandby
    #4.在nn2上启动NameNode节点
    $ sbin/hadoop-daemon.sh start namenode
    #此时,两个节点都是standby状态
    #5.将nn1节点的NameNode设置为activity
    $ bin/hdfs haadmin -transitionToActive nn1
    #获取状态
    $ bin/hdfs haadmin -getServiceState nn1
    #6.开启各个节点的DataNode
    $ sbin/hadoop-deamon.sh start datanode
    

    集群规划

    123 124 125
    NameNode NameNode
    ZKFC ZKFC
    JournalNode JournalNode JournalNode
    不需要SecondaryNameNode,因为不会出现重启情况
    

    Zookeeper用于自动故障转移

    配置依据官方文档即可

    启动带监控的HDFS HA服务器集群

    #1.关闭所有hdfs服务
    #2.启动ZK集群
    $ bin/zkServer.sh start
    #3.初始化HA在ZooKeeper中状态
    $ bin/hdfs zkfc -formatZK
    #4.启动HDFS文件系统,看到所有的NameNode节点上多了一个DFSZKFailoverController即zkfc启动成功
    可以通过kill -9 1234来验证
  • 相关阅读:
    微信小程序tabBar 不显示底部菜单的原因和解决方法
    MySQL安装教程
    表单按回车触发事件
    Linux查找最近修改的文件
    通过JS实现网站繁体简体互换
    二级联动下拉列表
    JS跳出框架返回上一页
    mysql查询所有记录,并去掉重复的记录
    查询时间戳函数
    简单信息逐条滚动显示,适用于企业动态,公告等
  • 原文地址:https://www.cnblogs.com/cenzhongman/p/7142409.html
Copyright © 2020-2023  润新知