大数据学习系列(十)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互相免密以及对自己免密

IPhostname
192.168.40.33eleven-2
192.168.40.34eleven-3
192.168.40.35eleven-4
192.168.40.36eleven-5

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

 

NN-1

NN-2

DN

ZK

ZKFC

JNN

eleven-2

*

 

 

 

*

*

eleven-3

 

*

*

*

*

*

eleven-4

 

 

*

*

 

*

eleven-5

 

 

*

*

 

 

一、修改Hadoop配置

1.修改hdfs.site.xml

<configuration>
    <!--配置副本数量-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--namenode集群的名称-->
    <property>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
    </property>
    <!--此集群名称下包含的namenode的节点名称-->
    <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>nn1,nn2</value>
    </property>
    <!--namenode节点名称所对应的服务器地址:ip:port-->
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn1</name>
        <value>eleven-2:8020</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn2</name>
        <value>eleven-3:8020</value>
    </property>
    <!--namenode节点服务器所对外提供的浏览器访问地址:IP:port-->
    <property>
         <name>dfs.namenode.http-address.mycluster.nn1</name>
         <value>eleven-2:50070</value>
    </property>
    <property>
         <name>dfs.namenode.http-address.mycluster.nn2</name>
         <value>eleven-3:50070</value>
    </property>
    <!--配置journalnode服务器地址-->
    <property>
         <name>dfs.namenode.shared.edits.dir</name>
         <value>qjournal://eleven-2:8485;eleven-3:8485;eleven-4:8485/mycluster</value>
    </property>
    <!--一个代理插件-->
    <property>
         <name>dfs.client.failover.proxy.provider.mycluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!--服务器间通过ssh联系-->
    <property>
         <name>dfs.ha.fencing.methods</name>
         <value>sshfence</value>
    </property>
    <!--配置私钥文件路径-->
    <property>
         <name>dfs.ha.fencing.ssh.private-key-files</name>
         <value>/root/.ssh/id_dsa</value>
    </property>
    <!---配置edits文件存放路径-->
    <property>
         <name>dfs.journalnode.edits.dir</name>
         <value>/var/sxt/hadoop/ha/journalnode</value>
    </property>
    <!--开启自动故障转移-->
    <property>
         <name>dfs.ha.automatic-failover.enabled</name>
         <value>true</value>
    </property>
</configuration>

2.修改core-site.xml文件

<configuration>
    <!--配置使用的namenode集群名称,在hdfs-site.xml文件里配置的-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value>
    </property>
    <!--配置镜像快照及元素据信息存放路径-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/sxt/hadoop/ha</value>
    </property>
    <!--配置zookeeper服务器地址-->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>eleven-3:2181,eleven-4:2181,eleven-5:2181</value>
    </property>
</configuration>

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)

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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值