“1+X中级A卷:zookeeper集群”的版本间的差异
(创建页面,内容为“2.1 规划节点 ZooKeeper集群系统的节点规划,节点规划如下 IP 主机名 节点 192.168.200.135 zookeeper1 集群节点 192.168.200.136 zookeeper2 集…”) |
|||
第1行: | 第1行: | ||
2.1 规划节点 | 2.1 规划节点 | ||
ZooKeeper集群系统的节点规划,节点规划如下 | ZooKeeper集群系统的节点规划,节点规划如下 | ||
+ | |||
IP 主机名 节点 | IP 主机名 节点 | ||
192.168.200.135 zookeeper1 集群节点 | 192.168.200.135 zookeeper1 集群节点 | ||
192.168.200.136 zookeeper2 集群节点 | 192.168.200.136 zookeeper2 集群节点 | ||
192.168.200.137 zookeeper3 集群节点 | 192.168.200.137 zookeeper3 集群节点 | ||
+ | |||
2.2 基础准备 | 2.2 基础准备 | ||
登录OpenStack平台,使用提供的CentOS_7.2_x86_64_XD.qcow2镜像,flavor使用2vCPU/4GB内存/50GB硬盘创建云主机。使用提供的zookeeper-3.4.14.tar.gz包和gpmall-repo文件夹,安装zookeeper服务。 | 登录OpenStack平台,使用提供的CentOS_7.2_x86_64_XD.qcow2镜像,flavor使用2vCPU/4GB内存/50GB硬盘创建云主机。使用提供的zookeeper-3.4.14.tar.gz包和gpmall-repo文件夹,安装zookeeper服务。 | ||
第12行: | 第14行: | ||
使用hostnamectl命令修改三台主机的主机名 | 使用hostnamectl命令修改三台主机的主机名 | ||
zookeeeper1节点 | zookeeeper1节点 | ||
+ | |||
[root@localhost ~]# hostnamectl set-hostname zookeeper1 | [root@localhost ~]# hostnamectl set-hostname zookeeper1 | ||
+ | |||
zookeeeper2节点 | zookeeeper2节点 | ||
+ | |||
[root@localhost ~]# hostnamectl set-hostname zookeeper2 | [root@localhost ~]# hostnamectl set-hostname zookeeper2 | ||
+ | |||
zookeeeper3节点 | zookeeeper3节点 | ||
+ | |||
[root@localhost ~]# hostnamectl set-hostname zookeeper3 | [root@localhost ~]# hostnamectl set-hostname zookeeper3 | ||
+ | |||
验证:修改完之后重新连接secureCRT,并查看主机名: | 验证:修改完之后重新连接secureCRT,并查看主机名: | ||
zookeeeper1节点 | zookeeeper1节点 | ||
+ | |||
[root@zookeeper1 ~]# hostnamectl | [root@zookeeper1 ~]# hostnamectl | ||
Static hostname: localhost.localdomain | Static hostname: localhost.localdomain | ||
第31行: | 第40行: | ||
Kernel: Linux 3.10.0-327.el7.x86_64 | Kernel: Linux 3.10.0-327.el7.x86_64 | ||
Architecture: x86-64 | Architecture: x86-64 | ||
+ | |||
zookeeeper2节点 | zookeeeper2节点 | ||
+ | |||
[root@zookeeper2 ~]# hostnamectl | [root@zookeeper2 ~]# hostnamectl | ||
Static hostname: localhost.localdomain | Static hostname: localhost.localdomain | ||
第44行: | 第55行: | ||
Kernel: Linux 3.10.0-327.el7.x86_64 | Kernel: Linux 3.10.0-327.el7.x86_64 | ||
Architecture: x86-64 | Architecture: x86-64 | ||
+ | |||
zookeeeper3节点 | zookeeeper3节点 | ||
+ | |||
[root@zookeeper3 ~]# hostnamectl | [root@zookeeper3 ~]# hostnamectl | ||
Static hostname: localhost.localdomain | Static hostname: localhost.localdomain | ||
第57行: | 第70行: | ||
Kernel: Linux 3.10.0-327.el7.x86_64 | Kernel: Linux 3.10.0-327.el7.x86_64 | ||
Architecture: x86-64 | Architecture: x86-64 | ||
+ | |||
+ | ---- | ||
+ | |||
2.编辑hosts文件 | 2.编辑hosts文件 | ||
修改三台集群虚拟机的/etc/hosts配置文件 | 修改三台集群虚拟机的/etc/hosts配置文件 | ||
+ | |||
[root@zookeeper3 ~]# cat /etc/hosts | [root@zookeeper3 ~]# cat /etc/hosts | ||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 | 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 | ||
第65行: | 第82行: | ||
192.168.200.136 zookeeper2 | 192.168.200.136 zookeeper2 | ||
192.168.200.137 zookeeper3 | 192.168.200.137 zookeeper3 | ||
+ | |||
+ | ---- | ||
+ | |||
3.配置yum源 | 3.配置yum源 | ||
数据库集群需要安装MariaDB数据库服务,需要给集群虚拟机配置yum安装源文件,使用提供的gpmall-repo文件上传至三个虚拟机的/opt目录下,配置本地yum源。 | 数据库集群需要安装MariaDB数据库服务,需要给集群虚拟机配置yum安装源文件,使用提供的gpmall-repo文件上传至三个虚拟机的/opt目录下,配置本地yum源。 | ||
第74行: | 第94行: | ||
gpgcheck=0 | gpgcheck=0 | ||
enabled=1 | enabled=1 | ||
+ | |||
+ | ---- | ||
+ | |||
3.2 搭建ZooKeeper集群 | 3.2 搭建ZooKeeper集群 | ||
1.安装JDK环境 | 1.安装JDK环境 | ||
第84行: | 第107行: | ||
3.修改3个节点配置文件 | 3.修改3个节点配置文件 | ||
在zookeeper1节点,进入zookeeper-3.4.14/conf目录下,修改zoo_sample.cfg文件为zoo.cfg,并编辑该文件内容如下 | 在zookeeper1节点,进入zookeeper-3.4.14/conf目录下,修改zoo_sample.cfg文件为zoo.cfg,并编辑该文件内容如下 | ||
+ | |||
[root@zookeeper1 ~]# cd zookeeper-3.4.14/conf/ | [root@zookeeper1 ~]# cd zookeeper-3.4.14/conf/ | ||
[root@zookeeper1 conf]# mv zoo_sample.cfg zoo.cfg | [root@zookeeper1 conf]# mv zoo_sample.cfg zoo.cfg | ||
[root@zookeeper1 conf]# vi zoo.cfg | [root@zookeeper1 conf]# vi zoo.cfg | ||
+ | |||
//最后添加以下三行 | //最后添加以下三行 | ||
server.1=172.16.51.170:2888:3888 | server.1=172.16.51.170:2888:3888 | ||
第94行: | 第119行: | ||
命令解析: | 命令解析: | ||
initLimit:ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。 | initLimit:ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。 | ||
+ | |||
syncLimit:配置follower和leader之间发送消息,请求和应答的最大时间长度。 | syncLimit:配置follower和leader之间发送消息,请求和应答的最大时间长度。 | ||
+ | |||
tickTime:tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。 | tickTime:tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。 | ||
+ | |||
server.id=host:port1:port2:其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。 | server.id=host:port1:port2:其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。 | ||
+ | |||
dataDir:其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。 | dataDir:其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。 | ||
+ | |||
注意:zookeeper2和zookeeper3节点的操作与修改的配置和zookeeper1节点一样。 | 注意:zookeeper2和zookeeper3节点的操作与修改的配置和zookeeper1节点一样。 | ||
− | + | | |
+ | 4.创建myid文件 | ||
在3台机器dataDir目录(此处为 /tmp/zookeeper)下,分别创建一个myid文件,文件内容分别只有一行,其内容为1,2,3。即文件中只有一个数字,这个数字即为上面zoo.cfg配置文件中指定的值。ZooKeeper是根据该文件来决定ZooKeeper集群各个机器的身份分配。 | 在3台机器dataDir目录(此处为 /tmp/zookeeper)下,分别创建一个myid文件,文件内容分别只有一行,其内容为1,2,3。即文件中只有一个数字,这个数字即为上面zoo.cfg配置文件中指定的值。ZooKeeper是根据该文件来决定ZooKeeper集群各个机器的身份分配。 | ||
创建myid文件,命令如下 | 创建myid文件,命令如下 | ||
+ | |||
zookeeper1节点 | zookeeper1节点 | ||
+ | |||
[root@zookeeper1 ~]# mkdir /tmp/zookeeper | [root@zookeeper1 ~]# mkdir /tmp/zookeeper | ||
[root@zookeeper1 ~]# vi /tmp/zookeeper/myid | [root@zookeeper1 ~]# vi /tmp/zookeeper/myid | ||
[root@zookeeper1 ~]# cat /tmp/zookeeper/myid | [root@zookeeper1 ~]# cat /tmp/zookeeper/myid | ||
1 | 1 | ||
+ | |||
zookeeper2节点 | zookeeper2节点 | ||
+ | |||
[root@zookeeper2 ~]# mkdir /tmp/zookeeper | [root@zookeeper2 ~]# mkdir /tmp/zookeeper | ||
[root@zookeeper2 ~]# vi /tmp/zookeeper/myid | [root@zookeeper2 ~]# vi /tmp/zookeeper/myid | ||
[root@zookeeper2 ~]# cat /tmp/zookeeper/myid | [root@zookeeper2 ~]# cat /tmp/zookeeper/myid | ||
2 | 2 | ||
+ | |||
zookeeper3节点 | zookeeper3节点 | ||
+ | |||
[root@zookeeper3 ~]# mkdir /tmp/zookeeper | [root@zookeeper3 ~]# mkdir /tmp/zookeeper | ||
[root@zookeeper3 ~]# vi /tmp/zookeeper/myid | [root@zookeeper3 ~]# vi /tmp/zookeeper/myid | ||
[root@zookeeper3 ~]# cat /tmp/zookeeper/myid | [root@zookeeper3 ~]# cat /tmp/zookeeper/myid | ||
3 | 3 | ||
+ | |||
5.启动ZooKeeper服务 | 5.启动ZooKeeper服务 | ||
在3台节点的zookeeper/bin目录下执行命令如下: | 在3台节点的zookeeper/bin目录下执行命令如下: | ||
+ | |||
zookeeper1节点 | zookeeper1节点 | ||
+ | |||
[root@zookeeper1 bin]# ./zkServer.sh start | [root@zookeeper1 bin]# ./zkServer.sh start | ||
ZooKeeper JMX enabled by default | ZooKeeper JMX enabled by default | ||
第127行: | 第167行: | ||
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg | Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg | ||
Mode: follower | Mode: follower | ||
+ | |||
zookeeper2节点 | zookeeper2节点 | ||
+ | |||
[root@zookeeper2 bin]# ./zkServer.sh start | [root@zookeeper2 bin]# ./zkServer.sh start | ||
ZooKeeper JMX enabled by default | ZooKeeper JMX enabled by default | ||
第135行: | 第177行: | ||
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg | Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg | ||
Mode: leader | Mode: leader | ||
+ | |||
zookeeper3节点 | zookeeper3节点 | ||
+ | |||
[root@zookeeper3 bin]# ./zkServer.sh start | [root@zookeeper3 bin]# ./zkServer.sh start | ||
ZooKeeper JMX enabled by default | ZooKeeper JMX enabled by default | ||
第143行: | 第187行: | ||
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg | Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg | ||
Mode: follower | Mode: follower | ||
+ | |||
3个节点,zookeeper2为leader,其他的都是follower | 3个节点,zookeeper2为leader,其他的都是follower | ||
至此,ZooKeeper集群配置完毕 | 至此,ZooKeeper集群配置完毕 |
2020年11月16日 (一) 15:10的最新版本
2.1 规划节点 ZooKeeper集群系统的节点规划,节点规划如下
IP 主机名 节点 192.168.200.135 zookeeper1 集群节点 192.168.200.136 zookeeper2 集群节点 192.168.200.137 zookeeper3 集群节点
2.2 基础准备 登录OpenStack平台,使用提供的CentOS_7.2_x86_64_XD.qcow2镜像,flavor使用2vCPU/4GB内存/50GB硬盘创建云主机。使用提供的zookeeper-3.4.14.tar.gz包和gpmall-repo文件夹,安装zookeeper服务。 3. 案例实施 3.1 基础环境配置 1.修改主机名 使用hostnamectl命令修改三台主机的主机名 zookeeeper1节点
[root@localhost ~]# hostnamectl set-hostname zookeeper1
zookeeeper2节点
[root@localhost ~]# hostnamectl set-hostname zookeeper2
zookeeeper3节点
[root@localhost ~]# hostnamectl set-hostname zookeeper3
验证:修改完之后重新连接secureCRT,并查看主机名: zookeeeper1节点
[root@zookeeper1 ~]# hostnamectl
Static hostname: localhost.localdomain
Transient hostname: zookeeper1
Icon name: computer-vm Chassis: vm Machine ID: 97ff77ee5081492ba9a521fb3eb771e4 Boot ID: 3f2bd8ee48bc484dbf53b7ad7a3416a7 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-327.el7.x86_64 Architecture: x86-64
zookeeeper2节点
[root@zookeeper2 ~]# hostnamectl
Static hostname: localhost.localdomain
Transient hostname: zookeeper2
Icon name: computer-vm Chassis: vm Machine ID: c9070b9761404ca5b034fa8ea1002596 Boot ID: 7be8ad4a6ec94b93b29d9d100bd25e7e Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-327.el7.x86_64 Architecture: x86-64
zookeeeper3节点
[root@zookeeper3 ~]# hostnamectl
Static hostname: localhost.localdomain
Transient hostname: zookeeper3
Icon name: computer-vm Chassis: vm Machine ID: 36eb8c6506bd410f8d73be527f7cd582 Boot ID: 405d96c2468a477ea010c28eac4e6df6 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-327.el7.x86_64 Architecture: x86-64
2.编辑hosts文件 修改三台集群虚拟机的/etc/hosts配置文件
[root@zookeeper3 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- 1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.135 zookeeper1 192.168.200.136 zookeeper2 192.168.200.137 zookeeper3
3.配置yum源 数据库集群需要安装MariaDB数据库服务,需要给集群虚拟机配置yum安装源文件,使用提供的gpmall-repo文件上传至三个虚拟机的/opt目录下,配置本地yum源。 修改三台集群虚拟机的yum源配置文件
[gpmall] name=gpmall baseurl=file:///opt/gpmall-repo gpgcheck=0 enabled=1
3.2 搭建ZooKeeper集群 1.安装JDK环境 给三个节点安装Java JDK环境,命令如下
- yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
2.解压ZooKeeper软件包 将zookeeper-3.4.14.tar.gz软件包上传至3个节点的/root目录下,进行解压操作,3个节点均执行命令如下
- tar -zxvf zookeeper-3.4.14.tar.gz
3.修改3个节点配置文件 在zookeeper1节点,进入zookeeper-3.4.14/conf目录下,修改zoo_sample.cfg文件为zoo.cfg,并编辑该文件内容如下
[root@zookeeper1 ~]# cd zookeeper-3.4.14/conf/ [root@zookeeper1 conf]# mv zoo_sample.cfg zoo.cfg [root@zookeeper1 conf]# vi zoo.cfg
//最后添加以下三行 server.1=172.16.51.170:2888:3888 server.2=172.16.51.171:2888:3888 server.3=172.16.51.172:2888:3888
命令解析: initLimit:ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。
syncLimit:配置follower和leader之间发送消息,请求和应答的最大时间长度。
tickTime:tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。
server.id=host:port1:port2:其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
dataDir:其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。
注意:zookeeper2和zookeeper3节点的操作与修改的配置和zookeeper1节点一样。 4.创建myid文件 在3台机器dataDir目录(此处为 /tmp/zookeeper)下,分别创建一个myid文件,文件内容分别只有一行,其内容为1,2,3。即文件中只有一个数字,这个数字即为上面zoo.cfg配置文件中指定的值。ZooKeeper是根据该文件来决定ZooKeeper集群各个机器的身份分配。 创建myid文件,命令如下
zookeeper1节点
[root@zookeeper1 ~]# mkdir /tmp/zookeeper [root@zookeeper1 ~]# vi /tmp/zookeeper/myid [root@zookeeper1 ~]# cat /tmp/zookeeper/myid 1
zookeeper2节点
[root@zookeeper2 ~]# mkdir /tmp/zookeeper [root@zookeeper2 ~]# vi /tmp/zookeeper/myid [root@zookeeper2 ~]# cat /tmp/zookeeper/myid 2
zookeeper3节点
[root@zookeeper3 ~]# mkdir /tmp/zookeeper [root@zookeeper3 ~]# vi /tmp/zookeeper/myid [root@zookeeper3 ~]# cat /tmp/zookeeper/myid 3
5.启动ZooKeeper服务 在3台节点的zookeeper/bin目录下执行命令如下:
zookeeper1节点
[root@zookeeper1 bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Starting zookeeper ... STARTED[root@zookeeper1 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Mode: follower
zookeeper2节点
[root@zookeeper2 bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Starting zookeeper ... already running as process 10175.[root@zookeeper2 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Mode: leader
zookeeper3节点
[root@zookeeper3 bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Starting zookeeper ... STARTED[root@zookeeper3 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Mode: follower
3个节点,zookeeper2为leader,其他的都是follower 至此,ZooKeeper集群配置完毕