hadoop HDFS 的HA集群部署,使用ZK实现自动容灾

完全0开始部署hadoop HDFS的HA集群,使用zk实现自动容灾

1.停掉hadoop的所有进程

stop-all.sh

2.删除所有节点的日志和本地数据.

    ##批量删除
    xcall "rm -rf /soft/hadoop/logs/*"
	xcall "rm -rf /home/admin/hadoop/*"
    
    ##JournalNode 日志也需要删除

    ##查看删除后的结果
	xcall "ls -al /home/admin/hadoop"
	xcall "ls -al /soft/hadoop/logs"

3.改换hadoop符号连接为ha 

4.登录每台JN节点主机,启动JN进程.

[s202-s204]
$>hadoop-daemon.sh start journalnode

5.登录其中一个NN,格式化文件系统(s201)

$>hadoop namenode -format

6.复制201目录的下nn的元数据到s206

$>scp -r ~/hadoop/* centos@s206:/home/centos/hadoop

7.在未格式化的NN(s206)节点上做standby引导.
        7.1)需要保证201的NN启动

         $>hadoop-daemon.sh start namenode

        7.2)登录到s206节点,做standby引导.

         $>hdfs namenode -bootstrapStandby

        7.3)登录201,将s201的edit日志初始化到JN节点。

        $>hdfs namenode -initializeSharedEdits

注:此处可能会出现name文件夹绑定错误,需删除绑定的文件

8.启动所有数据节点.

$>hadoop-daemons.sh start datanode

9.登录到206,启动NN

        $>hadoop-daemon.sh start namenode

10.查看webui

        http://s201:50070/
        http://s206:50070/

11.自动容灾
        11.1)介绍
            自动容灾引入两个组件,zk quarum + zk容灾控制器(ZKFC)。
            运行NN的主机还要运行ZKFC进程,主要负责:
            a.健康监控
            b.session管理
            c.选举
        11.2部署容灾

            a.停止所有进程                

        $>stop-all.sh

            b.配置hdfs-site.xml,启用自动容灾.               

                 [hdfs-site.xml]
                <property>
                    <name>dfs.ha.automatic-failover.enabled</name>
                    <value>true</value>
                </property>

            c.配置core-site.xml,指定zk的连接地址.                

                <property>
                    <name>ha.zookeeper.quorum</name>
                    <value>s201:2181,s202:2181,s203:2181</value>
                </property>

            d.分发以上两个文件到所有节点。

12.登录其中的一台NN(s201),在ZK中初始化HA状态       

         $>hdfs zkfc -formatZK

    13.启动hdfs进程.      

          $>start-dfs.sh

    14.测试自动容在(206是活跃节点)       

         $>kill -9

配置RM的HA自动容灾

1.配置yarn-site.xml

        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>        
        <property>
			<name>yarn.resourcemanager.ha.enabled</name>
			<value>true</value>
		</property>
		<property>
			<name>yarn.resourcemanager.cluster-id</name>
			<value>cluster1</value>
		</property>
		<property>
			<name>yarn.resourcemanager.ha.rm-ids</name>
			<value>rm1,rm2</value>
		</property>
		<property>
			<name>yarn.resourcemanager.hostname.rm1</name>
			<value>s201</value>
		</property>
		<property>
			<name>yarn.resourcemanager.hostname.rm2</name>
			<value>s206</value>
		</property>
		<property>
			<name>yarn.resourcemanager.webapp.address.rm1</name>
			<value>s201:8088</value>
		</property>
		<property>
			<name>yarn.resourcemanager.webapp.address.rm2</name>
			<value>s206:8088</value>
		</property>
		<property>
			<name>yarn.resourcemanager.zk-address</name>
			<value>s201:2181,s202:2181,s203:2181</value>
		</property>

分发文件到其他节点

2.启动yarn集群

        $>start-yarn.sh

3.使用管理命令(可略过此步骤)        

        ##查看状态
        $>yarn rmadmin -getServiceState rm1
        ##切换状态到standby
        $>yarn rmadmin -transitionToStandby rm1

4.hadoop没有启动两个resourcemanager,需要手动启动另外一个

$>yarn-daemon.sh start resourcemanager

5.查看webui

6.做容灾模拟.  

      kill -9

猜你喜欢

转载自blog.csdn.net/mao502010435/article/details/89279928