Hello,world!
🐒本篇博客使用到的工具有:VMware16 ,Xftp7
若不熟悉操作命令,推荐使用带GUI页面的CentOS7虚拟机
我将使用带GUI页面的虚拟机演示
虚拟机(Virtual Machine)
指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
【确保服务器集群安装和配置已经完成!】可参考我的上篇博客:
VMware创建Linux虚拟机之(一)实现免密登录_Vim_飞鱼的博客-CSDN博客
VMware创建Linux虚拟机之(二)下载安装JDK与配置Java环境变量_Vim_飞鱼的博客-CSDN博客
VMware创建Linux虚拟机之(三)Hadoop安装与配置及搭建集群_Vim_飞鱼的博客-CSDN博客_利用vmware虚拟机安装hadoop
前言
请根据读者的自身情况,进行相应随机应变。
我的三台CentOS7服务器:
主机:master(192.168.149.101)
从机:slave1(192.168.149.102)
从机:slave2(192.168.149.103)
每一个节点的安装与配置是相同的,在实际工作中,通常在master节点上完成安装和配置后,然后将安装目录通过 scp 命令复制到其他节点即可。
注意:所有操作都是root用户权限,需要我们登陆时选择root用户登录。
zookeeper完全分布式安装
下载Zookeeper安装包
Zookeeper 下载地址:
Apache ZooKeeper
解压Zookeeper安装包
首先,需要确保 network 网络已经配置好,使用 Xftp 等类似工具进行上传,把 apache-zookeeper-3.6.2-bin.tar.gz 上传到 opt/ 目录内。(也可使用U盘等工具拖拽)
上传完成后,在 master 主机上执行以下代码: 解压zookeeper
cd /opt/ tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
执行成功后,系统在 opt 目录自动创建 zookeeper-3.6.2 子目录。
注意:可使用 ls 等命令查看文件解压是否无误。
配置bashrc文件(等同于profile)
#zookeeper config export ZOOKEEPER_HOME=/opt/zookeeper-3.6.2 export PATH=$PATH:$ZOOKEEPER_HOME/bin
三台虚拟机均进行此操作
创建zookeeper数据存放目录
首先,我们可以使用 ls -l 命令查看文件权限,并修改文件权限
其中 -R 表示目录 前篇文章已经提到
ls -l sudo chmod -R 777 /opt/zookeeper-3.6.2
分别在三台虚拟机上执行 echo id > /opt/zookeeper-3.6.2/myid 命令创建 zookeeper 编号的 myid 的文件
echo 0 > /opt/zookeeper-3.6.2/myid echo 1 > /opt/zookeeper-3.6.2/myid echo 2 > /opt/zookeeper-3.6.2/myid
编辑zoo.cfg配置文件
将 zookeeper 下载后解压到当前用户目录 opt ,然后进入 zookeeper-3.6.2/conf,将zoo_sample.cfg 文件复制为 zoo.cfg 并编辑
cd zookeper-3.6.2/conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg
其中 dataDir 是zookeeper数据存放位置,server.y=XXXX:2888:3888 是zookeeper每台配置的信息,y代表zookeeper编号及myid文件对应的内容,XXXX是服务器对应的IP地址或者主机名
将以上 zookeeper 文件复制到三台服务器上
scp -r /opt/zookeeper-3.6.2 root@slave1:/opt scp -r /opt/zookeeper-3.6.2 root@slave2:/opt
启动zookeeper
分别在服务器上执行zookeeper服务启动命令
服务器1 master
[root@master bin]# cd /opt/zookeeper-3.6.2/bin/ [root@master bin]# ls README.txt zkCli.sh zkServer.cmd zkSnapShotToolkit.cmd zkTxnLogToolkit.sh zkCleanup.sh zkEnv.cmd zkServer-initialize.sh zkSnapShotToolkit.sh zkCli.cmd zkEnv.sh zkServer.sh zkTxnLogToolkit.cmd [root@master bin]# zkServer.sh start ZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
服务器2 slave1
[root@slave1 ~]# cd /opt/zookeeper-3.6.2/bin/ [root@slave1 bin]# zkServer.sh start ZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
服务器3 slave2
[root@slave2 ~]# cd /opt/zookeeper-3.6.2/bin/ [root@slave2 bin]# zkServer.sh start ZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
我们可以使用 status 检查集群状态
master
[root@master bin]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Mode: follower [root@master bin]#
slave1
[root@slave1 bin]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Mode: leader [root@slave1 bin]#
slave2
[root@slave2 bin]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Mode: follower [root@slave2 bin]#
上图中的 leader 及 follower 是集群自动分配
至此 ,zookeeper集群安装完成。
学会了吗?