Zookeeper系列文章目录
1、zookeeper3.7.1安装与验证
2、zookeeper基本操作及应用示例(shell、java api、应用场景示例)
3、zookeeper的选举----经验证符合事实,网上很多都是错误的
4、zookeeper的java三种客户端介绍-Curator(crud、事务操作、监听、分布式计数器、分布式锁)
5、zookeeper的java -Curator(服务注册与发现)
zookeeper的安装与验证分为4个部分,即环境准备、部署、验证和环境变量设置。
由于zookeeper需要非root用户,所以需要创建用户alanchan。
zookeeper集群需要奇数台机器,本示例使用3台机器,机器名称分别为server1、server2、server3。
本集群是centos6版本。
本示例是在已经安装完jdk8的环境中进行操作的,如果没有安装jdk,则需要提前安装jdk。
一、设置机器名称并新建用户
该步骤三台服务器均需要做,以下操作使用的是root用户。
1、设置机器名称
vi /etc/hosts
# 在该文件中设置如下内容,ip,为你自己的ip
192.168.10.41 server1
192.168.10.42 server2
192.168.10.43 server3
192.168.10.44 server4
- 1
- 2
- 3
- 4
- 5
- 6
保存退出即可。要使机器名生效,则需要reboot。
2、增加用户alanchan及用户组
用户名alanchan为示例的用户名,设置为你需要的用户名和密码
# 创建用户及组
useradd -g root alanchan
passwd alanchan
123456(密码)
- 1
- 2
- 3
- 4
3、新建解压目录
创建zookeeper的解压目录,该步骤非必要,仅仅是为了方便管理,后续的大数据集群部署文件都会在该目录下。
su root
cd /usr/local
# 创建bigdata目录
mkdir bigdata
# 授权alanchan用户可以访问
chown -R alanchan:root /usr/local/bigdata/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
4、设置免密登录
本示例仅需要单向免密即可,即server1可以访问server2、server3。
详见文章:http://iyenn.com/rec/268282.html
二、部署
该步骤操作均是alanchan用户。该步骤的主要操作是在server1机器上操作的,然后将server1安装及配置好的文件复制到server2和server3上。
1、下载部署文件
# 下载apache-zookeeper-3.7.1-bin.tar.gz
# 下载地址: https://zookeeper.apache.org/releases.html#download,选择需要的版本,本示例为3.7.1
# 可以wget或直接下载
wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
- 1
- 2
- 3
- 4
2、解压
# 解压命令
tar -xzf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local/bigdata
# 验证解压结果
[alanchan@localhost ~]$ cd /usr/local/bigdata
[alanchan@localhost bigdata]$ ll
总用量 4
drwxrwxrwx 8 alanchan root 4096 7月 19 16:53 apache-zookeeper-3.7.1
[alanchan@localhost bigdata]$ cd apache-zookeeper-3.7.1/
[alanchan@localhost apache-zookeeper-3.7.1]$ ll
总用量 48
drwxr-xr-x 2 alanchan root 4096 7月 18 17:28 bin
drwxr-xr-x 2 alanchan root 4096 7月 18 17:28 conf
drwxr-xr-x 3 alanchan root 4096 7月 18 17:39 data
drwxr-xr-x 5 alanchan root 4096 7月 18 17:28 docs
drwxr-xr-x 2 alanchan root 4096 7月 18 17:28 lib
-rw-r--r-- 1 alanchan root 11358 7月 18 17:28 LICENSE.txt
drwxr-xr-x 2 alanchan root 4096 7月 18 17:39 logs
-rw-r--r-- 1 alanchan root 2084 7月 18 17:28 NOTICE.txt
-rw-r--r-- 1 alanchan root 2214 7月 18 17:28 README.md
-rw-r--r-- 1 alanchan root 3570 7月 18 17:28 README_packaging.md
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
3、修改配置文件
该步骤是在server1上操作。
# 到config目录下
cd apache-zookeeper-3.7.1/conf
# 重命名配置文件,即修改zookeeper默认的配置文件模板
cp zoo_sample.cfg zoo.cfg
# 修改配置文件内容
vi zoo.cfg
# 端口可以不改
clientPort=2118
# zookeeper存放数据的目录,具体情况视自己的需要而定
dataDir=/usr/local/bigdata/apache-zookeeper-3.7.1/data
# 设置集群机器以及相关的端口
server.1=server1:2888:3888 # (主机名:心跳端口:数据端口)
server.2=server2:2888:3888
server.3=server3:2888:3888
# 修改完成后,保存并退出
# 创建数据文件目录
cd /usr/local/bigdata/apache-zookeeper-3.7.1/
# 授权数据文件目录
mkdir -m 755 data
# 在data文件夹下新建myid文件,myid的文件内容为:
cd data
# 创建myid文件,如果存在则修改
vi myid
#添加内容:1
# 保存并退出即可
#正确配置完的样子如下
[alanchan@server1 data]$ pwd
/usr/local/bigdata/apache-zookeeper-3.7.1/data
[alanchan@server1 data]$ cat myid
1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
到此,集群上的主要配置文件已经修改完成。
4、拷贝文件至server2、server3上
上面3个步骤是在server1上完成的,本步骤是将前面3个步骤完成的部署文件复制到server2、server3上。前提是server1到server2、server3的免密登录已经完成正确的设置。
scp -r /usr/local/bigdata/ alanchan@server2:/usr/local/
scp -r /usr/local/bigdata/ alanchan@server3:/usr/local/
# 执行过程中能看到复制哪些文件和复制的结果
- 1
- 2
- 3
5、修改myid
分别登录server2和server3服务器,使用的用户是alanchan。server2和server3上操作是一样的,故只在server2上进行示例。myid的数字只要集群内不重复即可,本示例中的1、2、3仅仅是示例,设置100、200、300也可以。
# 到server2上:修改myid为:2
# 设置完成后的样子如下:
[alanchan@server2 data]$ pwd
/usr/local/bigdata/apache-zookeeper-3.7.1/data
[alanchan@server2 data]$ cat myid
2
# 到server3上:修改myid为:3
# 设置完成后的样子如下:
[alanchan@server3 data]$ pwd
/usr/local/bigdata/apache-zookeeper-3.7.1/data
[alanchan@server3 data]$ cat myid
3
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
6、启动与关闭
该步骤在server1上进行操作。
cd /usr/local/bigdata/apache-zookeeper-3.7.1/bin
# 启动zookeeper
./zkServer.sh start
#
cd /usr/local/bigdata/apache-zookeeper-3.7.1/bin
# 启动zookeeper
./zkServer.sh stop
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
三、验证
下面是简单示例验证,三台机器任一均可。
1、查看进程
通过进程查看是否启动,由于zookeeper是java开发的,可以直接使用jps命令查看。
[alanchan@localhost apache-zookeeper-3.7.1]$ jps
16897 Jps
# 是服务端的进程
8711 QuorumPeerMain
# 是zookeeper客户端的进程,如果没有客户端连接的话,该进程不存在
30940 ZooKeeperMain
- 1
- 2
- 3
- 4
- 5
- 6
出现以上进程说明启动是成功的。
2、查看状态
# 如果没有设置环境变量,则需要到/usr/local/bigdata/apache-zookeeper-3.7.1/bin下执行命令
./zkServer.sh status
[alanchan@localhost bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/bigdata/apache-zookeeper-3.7.1/bin/../conf/zoo.cfg
Client port found: 2118. Client address: localhost. Client SSL: false.
Mode: leader
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
以上说明启动成功,并且server1是leader,server2、server3是follower。
四、配置环境变量
由于以上没有配置环境变量,所以在启停的时候均需要切换到bin目录下进行操作,避免总是切换到不同的目录,可以设置环境变量。该步骤三台机器同样的操作。
# 1、切换用户到root,如果本身就是以root登录,则跳过
su – root(切换用户到root)
# 2、修改环境变量文件
vi /etc/profile
# 添加内容如下,目录/usr/local/bigdata/apache-zookeeper-3.7.1是上文中zookeeper的解压目录
export ZOOKEEPER_HOME=/usr/local/bigdata/apache-zookeeper-3.7.1
export PATH=$PATH:$ZOOKEEPER_HOME/bin
# 3、重新加载环境
source /etc/profile
# 注意:3台zookeeper都需要修改
#4、修改完成后切换回alanchan用户
su - alanchan
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
以上,完成了环境变量的配置,后续关于其他软件的环境变量配置都是类似的。
评论记录:
回复评论: