Zookeeper使用CentOS7搭建集群

3 篇文章 0 订阅
1 篇文章 0 订阅

zookeeper:apache-zookeeper-3.6.2
JDK:jdk1.8.0_271
maven: apache-maven-3.6.3
Linux: CentOS 7.8

我这里全程使用root安装操作

安装准备

我这里使用VMware安装CentOS7的虚拟机,这里就不安装了,我安装了一个,然后复制了两个,一共三个虚拟机,然后重启一下虚拟机。

1、设置hostname

查看hostname

 hostname

重新设置hostname

hostnamectl set-hostame [重新定义的名称]

我这里设置的三台分别是node1、node2、node3

然后重启生效

reboot

2、设置ens33

我们要使用ip地址连接,但是CentOS默认ens33是关闭的这里要打开
查看ip地址

ip addr

图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KWOxcIWA-1604660226913)(en-resource://database/612:0)]

如果inet没有值就说明ens33没有打开

进入目录/etc/sysconfig/network-scripts/
修改文件ifcfg-ens33

vi ifcfg-ens33

修改文件

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=66ce768f-9acf-428d-a213-76a6798c5fa2
DEVICE=ens33
ONBOOT=yes

这里修改的是 ONBOOT=yes 如果是no就改成yes

使文件生效

service network restart

这时查看ip就有了,然后就可以使用远程连接工具使用了,我这里使用的是MobaXterm,这个没有什么限制,什么都可以。

3、安装zookeeper、JDK、maven

我这里是上传安装包安装,特别是JDK下载比较麻烦,要有账号才能下载,这里用上传的方式要好很多
我的软件放在/usr目录下,软件安装包名称我改了一下,方便输入

然后解压软件

tar -zxvf java8.tar.gz
tar -zxvf maven3.tar.gz
tar -zxvf zookeeper.tar.gz

在这里插入图片描述

然后配置环境变量
打开文件

vi /etc/profile

在结尾添加

#java environment
export JAVA_HOME=/usr/jdk1.8.0_271
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

#set zookeeper environment
export ZK_HOME=/usr/apache-zookeeper-3.6.2
export PATH=$PATH:$ZK_HOME/bin

#maven zookeeper environment
export MAVEN_HOME=/usr/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin

使文件生效

source /ect/profile

然后检查JDK和MAVEN是否安装好

java -version

mvn -v

如果有产品信息就说明安装好了

4、关闭防火墙

(1)设置开机启用防火墙:

systemctl enable firewalld.service

(2)设置开机禁用防火墙:

systemctl disable firewalld.service

(3)启动防火墙:

systemctl start firewalld

(4)关闭防火墙:

systemctl stop firewalld

(5)检查防火墙状态:

systemctl status firewalld 

这里要关闭防火墙

5、设置Zookeeper

1、编译zookeeper-server

进入安装目录下进入目录zookeeper-server

cd zookeeper-server

编译

mvn package -Dmaven.test.skip=true

不编译会抛出异常

Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain

编译完后继续下面步骤。

2、配置zoo.cfg文件

首先进入目录conf然后执行

cp zoo_sample.cfg zoo.cfg

创建一个zoo.cfg

然后修改

vi zoo.cfg

修改如下

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/apache-zookeeper-3.6.2/data
# the port at which the clients will connect
clientPort=2181
server.1=192.168.17.135:2888:3888
server.2=192.168.17.136:2888:3888
server.3=192.168.17.137:2888:3888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

在这里插入图片描述

主要修改内容就是这些,
但是要记住这里默认使用的一个端口是8080,如果有其他端口占用,要么修改这里的端口,要么修改;
添加配置

admin.serverPort=没有被占用的端口号

同时我们也可以修改客户端地址

clientPortAddress=192.168.17.135

看需要了

上面红色框住的内容即是我们修改的内容:  
①、tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime  
②、dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。  
③、client:监听客户端连接的端口。  
④、initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。  
⑤、syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。  
⑥、server.A=B:C:D    
A:其中 A 是一个数字,表示这个是服务器的编号;    
B:是这个服务器的 ip 地址;    
C:Leader选举的端口;    
D:Zookeeper服务器之间的通信端口。  
我们需要修改的第一个是 dataDir ,在指定的位置处创建好目录。  
第二个需要新增的是 server.A=B:C:D 配置,其中 A 对应下面我们即将介绍的myid 文件。B是集群的各个IP地址,C:D 是端口配置。

3、创建dataDir目录和myid文件

我们要在安装的根目录下创建这个目录,路径就是是上面配置的

mkdir dataDir

创建myid文件

echo [A] > myid

这里的A对应上面的server.A的配置,这里使用整数,就对应上zoo.cfg中的配置了
例如:

echo 1> myid

然后查看一下

cat myid

显示

1

就是对的
这里要注意配置的myid要对应上

server.1=192.168.17.135:2888:3888
server.2=192.168.17.136:2888:3888
server.3=192.168.17.137:2888:3888

这里的ip地址
192.168.17.135 机器上的 myid 就是 1

4、启动测试

启动命令:

zkServer.sh start

停止命令:

zkServer.sh stop

重启命令:

zkServer.sh restart

查看集群节点状态:

zkServer.sh status

启动后查看状态

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我们可以看到node3是leader,node1和node2是follower
这里交代一下我启动的顺序,是先启动node2,然后是node3,最后是node1,上面现象说是半数选举机制。

如果有错误,日志在根目录下的logs目录下

tail -1000f zookeeper-root-server-node1.out

这里的-1000f是查看最近的1000行,后面的会动态输出的

到这里就完成了所以的配置了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值