赞
踩
本案例软件包:链接:https://pan.baidu.com/s/1zABhjj2umontXe2CYBW_DQ
提取码:1123(若链接失效在下面评论,我会及时更新)。
使用hbase启动顺序:zookeeper->hadoop->hbase
关闭:hbase->hadoop->zookeeper
目录
1.首先使用xftp将zookeeper-3.4.6.tar.gz 传到虚拟的/home/hadoop/Downloads的目录下
3.切换到/usr/local/文件夹,将zookeeper-3.4.6重命名为zookeeper
6.将/usr/local/zookeeper/conf/zoo_sample.cfg重命名为zoo.cfg(ZooKeeper的配置文件)
8.新建/usr/local/zookeeper/zkdata,在该目录下新建文件myid
9.将/usr/local/zookeeper分发到虚拟机slave01和slave02
11.修改slave01的/usr/local/zookeeper/zkdata/myid
12.修改slave02的/usr/local/zookeeper/zkdata/myid
13.将master虚拟机的环境变量分发到虚拟机slave01 slave02
1.在master虚拟机下的/usr/local/zookeeper/bin目录下新建xzk-start.sh脚本文件,内容如下:
4.为xzk-start.sh,xzk-stop.sh,xzk-status.sh脚本添加权限
- cd Downloads #切换到目标文件夹
- sudo tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/ #将文件解压到目标目录
- cd /usr/local/
- sudo mv zookeeper-3.4.6 zookeeper
sudo vi /etc/profile
在最下面添加如下行内容
- export ZOOKEEPER_HOME=/usr/local/zookeeper #存放位置可以更改
- export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
- cd /usr/local/zookeeper/conf/
- sudo mv zoo_sample.cfg zoo.cfg
sudo vi /usr/local/zookeeper/conf/zoo.cfg
将dataDir修改为如下内容
dataDir=/usr/local/zookeeper/zkdata
在文件末尾添加如下内容:
- server.1=masterIP的地址:2888:3888
- server.2=slave01的地址:2888:3888
- server.3=slave02的地址:2888:3888
- server.1=192.168.242.129:2888:3888
- server.2=192.168.242.130:2888:3888
- server.3=192.168.242.131:2888:3888
- masterIP的地址:2888:3888 #其中master slave01 slave02为我hadoop集群中三台虚拟机的主机名 可以去 /etc/hosts中查看
其中”1“,”2“,”3“使myid,要求是1~255的整数。
2888是Leader端口,负责和Follower进行通信。
3888是Follower端口,负责推选Leader。
- sudo mkdir /usr/local/zookeeper/zkdata
- sudo vi /usr/local/zookeeper/zkdata/myid
在文件中填写如下内容
1
- sudo scp -r /usr/local/zookeeper/ slave01:/usr/local
- sudo scp -r /usr/local/zookeeper/ slave02:/usr/local
在master,slave01,slave02分别执行以下代码
sudo chown -R hadoop /usr/local/zookeeper
sudo vi /usr/local/zookeeper/zkdata/myid
将其中的内容替换成
2
sudo vi /usr/local/zookeeper/zkdata/myid
将其中的内容替换成
3
- sudo scp /etc/profile slave01:/etc/profile
- sudo scp /etc/profile slave02:/etc/profile
分别在slave01和slave02的zookeeper文件夹下执行以下命令
source /etc/profile
分别在三台虚拟机执行以下代码
zkServer.sh start
(1)查看Zookeeper服务器的启动状态
zkServer.sh status
出现如下表示即为Zookeeper启动成功
(2)使用jps命令查看Zookeeper进程是否启动
jps
出现QuorumPeerMain进程表明Zookeeper进程启动成功
由于每次启动和关闭Zookeeper集群都要在三台虚拟机分别进行,效率较低,我们可以在master节点编写启动脚本
- cd /usr/local/zookeeper/bin
- sudo vi xzk-start.sh
- #!/bin/sh
- for host in master slave01 slave02
- do
- echo "---------------------------------------------------------------------------"
- ssh $host "source /etc/profile;zkServer.sh start"
- echo "$host zk is started"
- done
- echo "---------------------------------------------------------------------------"
sudo vi xzk-stop.sh
- #!/bin/sh
- for host in master slave01 slave02
- do
- echo "---------------------------------------------------------------------------"
- ssh $host "source /etc/profile;zkServer.sh stop"
- echo "$host zk is stop"
- done
- echo "---------------------------------------------------------------------------"
sudo vi xzk-status.sh
- #!/bin/sh
- for host in master slave01 slave02
- do
- echo "---------------------------------------------------------------------------"
- ssh $host "source /etc/profile;zkServer.sh status"
- echo "$host's status"
- done
- echo "---------------------------------------------------------------------------"
- sudo chown -R hadoop xzk-start.sh
- sudo chown -R hadoop xzk-status.sh
- sudo chown -R hadoop xzk-stop.sh
- sudo chmod u+x xzk-start.sh
- sudo chmod u+x xzk-stop.sh
- sudo chmod u+x xzk-status.sh
- xzk-start.sh #开启
- xzk-stop.sh #关闭
- 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 进程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。