wget http://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
zookeeper下载地址:
http://archive.apache.org/dist/zookeeper/
参考 centos7上安装zookeeper - web_bird - 博客园 (cnblogs.com)
centos7上安装zookeeper
1 准备工作
-
1、准备服务器,本次安装采用 centos7系统、内存2G、存储60G的虚拟机服务器一台;
-
2、服务器安装java环境: 参考文章《centos7上安装jdk8》博文;
-
3、准备zookeeper安装包, 本次采用 zookeeper-3.4.11.tar.gz 版本的包
2 安装zookeeper
2.1、 解压zookeeper安装包,使用tar命令:
tar -zxvf zookeeper-3.4.11.tar.gz
我们看下解压完成后,zookeeper文件夹的内容:
2.2、 修改配置文件:
-
1、我们进入
conf
文件夹下,可以看到该文件夹的内容如下:
-
2、这里,我们将 zoo_sample.cfg 复制一份并命名为 zoo.cfg
cp zoo_sample.cfg zoo.cfg
-
3、使用vi 命令打开zoo.cfg 并修改配置:
这里,我们需要注意上图标白的dataDir位置对应的目录,如果对应的目录不存在,我们需要修改该路径,我们先在zookeeper的解压路径下创建一个新的文件夹 data。
然后,我们将刚刚创建的文件夹路径设置到 dataDir 下:
其中,可以通过修改clientPort后面的值,修改zookeeper启动端口,默认为2181.
-
4、启动zookeeper
在zookeeper目录下的bin文件夹中,使用以下命令启动zookeeper:
./zkServer.sh start
-5 检查zookeeper启动情况
我们可以使用以下命令查看zookeeper的启动状态:
./zkServer.sh status
除此之外,我们也可以通过查看zookeeper的进程来判断其是否启动成功!
ps -ef | grep zookeeper
3 设置zookeeper开机自启动
我们可以将zookeeper作为一个服务,设置其开机自启,这样每次我们打开虚拟机就可以开启zookeeper,彻底解放双手!设置zookeeper开机自启需要以下几个步骤:
-
1、进入
/etc/init.d
目录:
-
2、创建文件zookeeper,并添加脚本:
vi zookeeper
脚本内容为:
#!/bin/bash #chkconfig:2345 20 90 #description:zookeeper #processname:zookeeper ZK_PATH=/opt/soft/zookeeper-3.4.11 export JAVA_HOME=/opt/soft/jdk1.8.0_152 case $1 in start) sh $ZK_PATH/bin/zkServer.sh start;; stop) sh $ZK_PATH/bin/zkServer.sh stop;; status) sh $ZK_PATH/bin/zkServer.sh status;; restart) sh $ZK_PATH/bin/zkServer.sh restart;; *) echo "require start|stop|status|restart" ;; esac
注意:上图的脚本中需要修改正确的zk和jdk安装路径!
-
3、保存脚本之后,执行以下指令将其注册为服务:
chkconfig --add zookeeper
-
4、测试其是否生效,这里采用先停服务,再使用命令启动,注意需要修改创建的zookeeper服务权限:
[root@zhiyou init.d]# service zookeeper start env: /etc/init.d/zookeeper: 权限不够 [root@zhiyou init.d]# [root@zhiyou init.d]# chmod +x zookeeper [root@zhiyou init.d]# [root@zhiyou init.d]# service zookeeper start ZooKeeper JMX enabled by default Using config: /opt/soft/zookeeper-3.4.11/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@zhiyou init.d]# [root@zhiyou init.d]# service zookeeper status ZooKeeper JMX enabled by default Using config: /opt/soft/zookeeper-3.4.11/bin/../conf/zoo.cfg Mode: standalone [root@zhiyou init.d]# [root@zhiyou init.d]# ps -ef|grep zookeeper
至此,我们已经完成了在centos7下安装zookeeper的全部步骤,以及设置了zookeeper开机自启动!
在每台机器修改主机名字:hostnamectl set-hostname hadoop1
hostnamectl set-hostname hadoop2
hostnamectl set-hostname hadoop3
1-3先在一台机器上完成
-
下载zookeeper:
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
注意啦:是下载编译过的这个包,不是那个源码包哈
-
解压缩
mkdir -p /export/servers
tar zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /export/servers
mv apache-zookeeper-3.7.0-bin zookeeper
3.配置文件
进入zookeeper所在目录后
mkdir zkdatas 或者mkdir -p /export/servers/zookeeper/zkdatas
cd conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/export/servers/zookeeper/zkdatas
#保留多少个快照
autopurge.snapRetainCount=3
#日志多少小时清理一次
autopurge.purgeInterval=1
#集群中服务器地址
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
注意啦,这里的hadoop1,hadoop2,hadoop3需要改成你自己三台机器名字
进入zookeeper目录:
cd zkdatas/
vim myid
填入值1 2 3
4登录另外两台机器,执行完 mkdir -p /export/servers后,返回第一台机器执行如下:
方法一:把 hadoop1的zookeeper上传到hadoop2,3
scp -r /export/servers/zookeeper/ root@hadoop2:/export/servers/
scp -r /export/servers/zookeeper/ root@hadoop3:/export/servers/
方法二:在hadoop2,3上下载hadoop1的文件目录zookeeper
scp -r root@hadoop1:/export/servers/zookeeper /export/servers/
5 登录到hadoop2上
vim myid 修改成2
登录到hadoop3上
vim myid修改3
6在hadoop1,hadoop2,hadoop3上都执行以下命令
setenforce 0
systemctl stop firewalld 临时关闭防火墙
systemctl disable firewalld 关闭开机自启动防火墙
7在hadoop1,hadoop2,hadoop3上都执行以下命令
/export/servers/zookeeper/bin/zkServer.sh start
8 在hadoop2或者3上客户端连接
bin/zkCli.sh -server hadoop1:2181
9
命令 | 说明 | 参数 |
create [-s] [-e] path data acl | 创建Znode | -s指定是顺序节点 -e指定是临时节点 |
ls path[watch] | 列出Path下所有子Znode | |
get path[watch] | 获取Path对应的Znode的数据和属性 | |
ls2 path[watch] | 查看Path下所有子Znode以及子Znode的属性 | |
set path data [version] | 更新节点 | version数据版本 |
delete path [version] | 删除节点,如果要删除的节点子Znode则无法删除 | version数据版本 |
rmr path | 删除节点,如果有子Znode则递归删除 | |
setquota -n|b val path | 修改Znode配额 | -n设置子节点最大个数 -b设置节点数据 |