当前位置:   article > 正文

7.Linux下Zookeeper的完全分布式的安装配置_zookeeper的完全分布式 linux

zookeeper的完全分布式 linux

本案例软件包:链接:https://pan.baidu.com/s/1zABhjj2umontXe2CYBW_DQ 
提取码:1123(若链接失效在下面评论,我会及时更新)。

使用hbase启动顺序:zookeeper->hadoop->hbase
                        关闭:hbase->hadoop->zookeeper

目录

(1)Zookeeper的完全分布式模式安装

1.首先使用xftp将zookeeper-3.4.6.tar.gz 传到虚拟的/home/hadoop/Downloads的目录下

2.解压缩至/usr/local

3.切换到/usr/local/文件夹,将zookeeper-3.4.6重命名为zookeeper

4.配置Zookeeper环境变量

5.使环境变量生效

6.将/usr/local/zookeeper/conf/zoo_sample.cfg重命名为zoo.cfg(ZooKeeper的配置文件)

7.修改Zookeeper的配置文件zoo.cfg

8.新建/usr/local/zookeeper/zkdata,在该目录下新建文件myid

9.将/usr/local/zookeeper分发到虚拟机slave01和slave02

10.赋予权限

11.修改slave01的/usr/local/zookeeper/zkdata/myid

12.修改slave02的/usr/local/zookeeper/zkdata/myid

13.将master虚拟机的环境变量分发到虚拟机slave01 slave02

14.分别使slave01 slave02的环境变量生效

15.启动Zookeeper的服务器

16.检查Zookeeper服务器是否启动

(2)编写脚本

1.在master虚拟机下的/usr/local/zookeeper/bin目录下新建xzk-start.sh脚本文件,内容如下:

2.新建xzk-stop.sh脚本文件,内容如下:

3.新建xzk-status.sh脚本文件,内容如下

4.为xzk-start.sh,xzk-stop.sh,xzk-status.sh脚本添加权限

5.为三个脚本拥有者添加执行权限

6.通过脚本在虚拟机master上同时启动,关闭虚拟机

(1)Zookeeper的完全分布式模式安装

1.首先使用xftp将zookeeper-3.4.6.tar.gz 传到虚拟的/home/hadoop/Downloads的目录下

2.解压缩至/usr/local

  1. cd Downloads #切换到目标文件夹
  2. sudo tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/ #将文件解压到目标目录

3.切换到/usr/local/文件夹,将zookeeper-3.4.6重命名为zookeeper

  1. cd /usr/local/
  2. sudo mv zookeeper-3.4.6 zookeeper

4.配置Zookeeper环境变量

sudo vi /etc/profile

 在最下面添加如下行内容

  1. export ZOOKEEPER_HOME=/usr/local/zookeeper #存放位置可以更改
  2. export PATH=$PATH:$ZOOKEEPER_HOME/bin

5.使环境变量生效

source /etc/profile

6.将/usr/local/zookeeper/conf/zoo_sample.cfg重命名为zoo.cfg(ZooKeeper的配置文件)

  1. cd /usr/local/zookeeper/conf/
  2. sudo mv zoo_sample.cfg zoo.cfg

7.修改Zookeeper的配置文件zoo.cfg

sudo vi /usr/local/zookeeper/conf/zoo.cfg

 将dataDir修改为如下内容

dataDir=/usr/local/zookeeper/zkdata

 在文件末尾添加如下内容:

  1. server.1=masterIP的地址:2888:3888
  2. server.2=slave01的地址:2888:3888
  3. server.3=slave02的地址:2888:3888
  1. server.1=192.168.242.129:2888:3888
  2. server.2=192.168.242.130:2888:3888
  3. server.3=192.168.242.131:2888:3888
  4. masterIP的地址:2888:3888 #其中master slave01 slave02为我hadoop集群中三台虚拟机的主机名 可以去 /etc/hosts中查看

其中”1“,”2“,”3“使myid,要求是1~255的整数。
2888是Leader端口,负责和Follower进行通信。
3888是Follower端口,负责推选Leader。

8.新建/usr/local/zookeeper/zkdata,在该目录下新建文件myid

  1. sudo mkdir /usr/local/zookeeper/zkdata
  2. sudo vi /usr/local/zookeeper/zkdata/myid

在文件中填写如下内容

1

9.将/usr/local/zookeeper分发到虚拟机slave01和slave02

  1. sudo scp -r /usr/local/zookeeper/ slave01:/usr/local
  2. sudo scp -r /usr/local/zookeeper/ slave02:/usr/local

10.赋予权限

在master,slave01,slave02分别执行以下代码

sudo chown -R hadoop /usr/local/zookeeper

11.修改slave01的/usr/local/zookeeper/zkdata/myid

sudo vi /usr/local/zookeeper/zkdata/myid

将其中的内容替换成

2

12.修改slave02的/usr/local/zookeeper/zkdata/myid

sudo vi /usr/local/zookeeper/zkdata/myid

将其中的内容替换成

3

13.将master虚拟机的环境变量分发到虚拟机slave01 slave02

  1. sudo scp /etc/profile slave01:/etc/profile
  2. sudo scp /etc/profile slave02:/etc/profile

14.分别使slave01 slave02的环境变量生效

分别在slave01和slave02的zookeeper文件夹下执行以下命令

source /etc/profile

15.启动Zookeeper的服务器

分别在三台虚拟机执行以下代码

zkServer.sh start

16.检查Zookeeper服务器是否启动

(1)查看Zookeeper服务器的启动状态

zkServer.sh status

出现如下表示即为Zookeeper启动成功

(2)使用jps命令查看Zookeeper进程是否启动

jps

 出现QuorumPeerMain进程表明Zookeeper进程启动成功

(2)编写脚本

由于每次启动和关闭Zookeeper集群都要在三台虚拟机分别进行,效率较低,我们可以在master节点编写启动脚本

1.在master虚拟机下的/usr/local/zookeeper/bin目录下新建xzk-start.sh脚本文件,内容如下:

  1. cd /usr/local/zookeeper/bin
  2. sudo vi xzk-start.sh
  1. #!/bin/sh
  2. for host in master slave01 slave02
  3. do
  4. echo "---------------------------------------------------------------------------"
  5. ssh $host "source /etc/profile;zkServer.sh start"
  6. echo "$host zk is started"
  7. done
  8. echo "---------------------------------------------------------------------------"

2.新建xzk-stop.sh脚本文件,内容如下:

sudo vi xzk-stop.sh
  1. #!/bin/sh
  2. for host in master slave01 slave02
  3. do
  4. echo "---------------------------------------------------------------------------"
  5. ssh $host "source /etc/profile;zkServer.sh stop"
  6. echo "$host zk is stop"
  7. done
  8. echo "---------------------------------------------------------------------------"

3.新建xzk-status.sh脚本文件,内容如下

sudo vi xzk-status.sh
  1. #!/bin/sh
  2. for host in master slave01 slave02
  3. do
  4. echo "---------------------------------------------------------------------------"
  5. ssh $host "source /etc/profile;zkServer.sh status"
  6. echo "$host's status"
  7. done
  8. echo "---------------------------------------------------------------------------"

4.为xzk-start.sh,xzk-stop.sh,xzk-status.sh脚本添加权限

  1. sudo chown -R hadoop xzk-start.sh
  2. sudo chown -R hadoop xzk-status.sh
  3. sudo chown -R hadoop xzk-stop.sh

5.为三个脚本拥有者添加执行权限

  1. sudo chmod u+x xzk-start.sh
  2. sudo chmod u+x xzk-stop.sh
  3. sudo chmod u+x xzk-status.sh

6.通过脚本在虚拟机master上同时启动,关闭虚拟机

  1. xzk-start.sh #开启
  2. xzk-stop.sh #关闭
  3. xzk-status.sh #查看状态

 执行xzk-start.sh如图所示

  执行xzk-status.sh如图所示

  执行xzk-stop.sh如图所示

 (3)当启动成功,查看zookeeper状态失败

可以用以下命令查看启动日志

zkServer.sh start-foreground

如果出现如下提示
java.net.BindException: Address already in use
说明端口被占用,通过如下命令检查端口2181

netstat -nltp | grep 2181

如果有则把对应的进程用如下命令kill

kill -9 进程
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/459046
推荐阅读
相关标签
  

闽ICP备14008679号