大数据学习系列(十)Hadoop2.X搭建HA(高可用)分布式集群

此环境所应用的软件及相关安装包链接:https://pan.baidu.com/s/1LctrNBWNvJeXT8M-OC3wcQ 
提取码:iuii

1.Hadoop  HA原理可看上一篇博客。

2.此环境是在大数据学习系列(八)Hadoop1.X全分布式项目及环境搭建  的基础上进行搭建的,所以需先准备好那个环境,包括IP  hosts  hostname  配置,hadoop  jdk的安装及配置等。

环境准备,以下是我的环境,注意要保证eleven-2和eleven-3互相免密以及对自己免密

IP hostname
192.168.40.33 eleven-2
192.168.40.34 eleven-3
192.168.40.35 eleven-4
192.168.40.36 eleven-5

各服务器上需要搭建的角色

 

NN-1

NN-2

DN

ZK

ZKFC

JNN

eleven-2

*

 

 

 

*

*

eleven-3

 

*

*

*

*

*

eleven-4

 

 

*

*

 

*

eleven-5

 

 

*

*

 

 

一、修改Hadoop配置

1.修改hdfs.site.xml


    
    
        dfs.replication
        3
    
    
    
        dfs.nameservices
        mycluster
    
    
    
        dfs.ha.namenodes.mycluster
        nn1,nn2
    
    
    
        dfs.namenode.rpc-address.mycluster.nn1
        eleven-2:8020
    
    
        dfs.namenode.rpc-address.mycluster.nn2
        eleven-3:8020
    
    
    
         dfs.namenode.http-address.mycluster.nn1
         eleven-2:50070
    
    
         dfs.namenode.http-address.mycluster.nn2
         eleven-3:50070
    
    
    
         dfs.namenode.shared.edits.dir
         qjournal://eleven-2:8485;eleven-3:8485;eleven-4:8485/mycluster
    
    
    
         dfs.client.failover.proxy.provider.mycluster
        org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    
    
    
         dfs.ha.fencing.methods
         sshfence
    
    
    
         dfs.ha.fencing.ssh.private-key-files
         /root/.ssh/id_dsa
    
    
    
         dfs.journalnode.edits.dir
         /var/sxt/hadoop/ha/journalnode
    
    
    
         dfs.ha.automatic-failover.enabled
         true
    

2.修改core-site.xml文件


    
    
        fs.defaultFS
        hdfs://mycluster
    
    
    
        hadoop.tmp.dir
        /var/sxt/hadoop/ha
    
    
    
        ha.zookeeper.quorum
        eleven-3:2181,eleven-4:2181,eleven-5:2181
    

3.修改slaves文件,配置datanode节点,前提是已经配置好了hostname及hosts.

eleven-3
eleven-4
eleven-5

4.配置完成后同步四台服务器的配置文件。

二、安装配置zookeeper,安装包在文章开头已经给出。(注意三台服务器配置要同步)

1.在eleven-3,eleven-4,eleven-5上上传zookeeper安装包,并解压至自己想要存放的目录下,我的安装路径为:  /opt/sxt/zookeeper-3.4.6

2.配置zookeeper环境变量

修改/etc/profile文件为如下,然后同步eleven-3,eleven-4,eleven-5三台服务器的profile文件,并重新读一下(source  /etc/profile)

大数据学习系列(十)Hadoop2.X搭建HA(高可用)分布式集群_第1张图片

3.修改配置文件,安装路径下的/conf/zoo.cfg文件,   我的文件路径为: /opt/sxt/zookeeper-3.4.6/conf/zoo.cfg,最后同步三台服务器的配置。

1.数据存放路径,如果没有此文件夹,需要创建这个路径
dataDir=/var/sxt/zk
2.配置zookeeper集群中服务器的地址及端口
server.1=eleven-3:2888:3888
server.2=eleven-4:2888:3888
server.3=eleven-5:2888:3888

4.在上面配置的dataDir路径下  配置数字节点规划。

1.三台服务器切换至  /var/sxt/zk

2.echo 1 > myid  //配置数字节点规划,三台zk服务器分别配置成1,2,3.
zk集群会根据此值的大小确定哪个是主节点   

三、启动项目(首次启动)

1.因为zookeeper是用来服务协调的,所以它需要知道整个项目的状态和信息,所以需要先把zk启动起来。

在zk的三台服务器上执行启动命令,如下:(前提是配置好了环境变量哟,如果没配置要切换到bin目录下执行)

zkServer.sh  start  //启动命令

zkServer.sh  stop   //停止命令

zkServer.sh  status //查看状态命令

zkCli.sh   //打开zk客户端,可以查看此时在zk上的服务的相关信息。

2.启动三台journalnode。

命令如下:

hadoop-daemon.sh start journalnode

3.启动namenode

1.在主namenode上执行格式化操作。命令如下

hdfs namenode –format

2.启动namenode,在主节点上执行启动命令

hadoop-deamon.sh start namenode  //启动命令

hadoop-deamon.sh stop namenode   //停止命令

3.另一台namenode不用重启启动,只需要执行以下同步命令即可,命令如下:

hdfs namenode  -bootstrapStandby

4.在namenode上格式话zk,并启动zkfc

此时所有主要的角色都启动起来了,还有一个 zkfc,
    
    1.在主namenode上执行zk初始化操作。命令如下:

    hdfs zkfc -formatZK

    2.启动zkfc,在主namenode上执行命令
    
    hadoop-daemon.sh start zkfc


还需最后一步,在主namenode节点上执行启动操作,会启动其他的角色datanode  备namenode

start-dfs.sh

5.关闭 项目

1.先关hdfs项目

stop-dfs.sh

2.再关zookeeper集群

zkServer.sh   stop

到此项目已经搭建并启动完毕。

首次启动需要按照上述步骤执行,

以后启动只需要执行两步操作

1.启动zk(在zk服务器上)

zkServer.sh  start /zkServer.sh  stop

2.启动hdfs,在主namenode上

start-dfs.sh  /stop-dfs.sh

 

你可能感兴趣的:(技术分享)