如何设置自动容灾?

为Hadoop集群设置了HA(高可用)之后,需要手动指定其中一个namenode状态为active,使集群处于服务状态。

设置自动容灾,集群在开启的过程中,会随机指定一个namenode状态为active,不再需要手动设置。

要完成自动容灾,需要在HDFS集群环境中添加两个组件:

        a.zookeeper集群

        b.ZKFC:zookeeper FailoverController process

这两个组件的作用分别描述为:

zookeeper的作用(官网):

        Apache Zookeeper是一种高可用性服务,用于维护少量协调数据,通知客户端该数据的更改以及监视客户端的故障。HDFS自动故障转移依赖于zookeeper来实现以下功能:

        a.故障检测:集群中的每个namenode节点计算机都在zookeeper中维持一个持久会话。如果计算机崩溃,zookeeper会话将过期,则通过另一个namenode计算机触发故障转移。

        b.active活跃节点的选举:zookeeper提供了一种简单的机制,可以将节点专门选为活动节点。如果当前的活动namenode崩溃,则另一个节点可能在zookeeper中采用特殊的独占锁,指示它应该成为下一个活动节点。

ZKFailoverController(ZKFC)的作用:

        a.它是一个zookeeper客户端,监视和管理namenode的状态

        b.运行namenode的每台机器也运行ZKFC,ZKFC负责:

                Namenode的运行状况监视:

                Zookeeper会话管理:

                选举制度:

安装zookeeper流程:

        a.下载zookeeper3.4.6.tar.gz

        b.解压至所需目录/home/hyxy/soft

        c.配置环境变量

                export ZOOKEEPER_HOME=/home/hyxy/soft/zookeeper

                export PATH=$ZOOKEEPER_HOME/bin:$PATH

        d.修改{ZOOKEEPER_HOME}/conf/zoo.cfg(需cp)

                tickTime=2000

                initLimit=10

                syncLimit=5

                dataDir=/home/hyxy/tmp/zookeeper

                clientPort=2181

        e.开启zookeeper server

                $>zkServer.sh start

        f.客户端连接:

                $>zkCli.sh

你可能感兴趣的:(Hadoop)