kafka+zookeeper单节点部署及注意事项
事前准备:
1、一台Linux服务器或者是一台虚拟机
2、准备好JDK环境
3、安装好wget(当然也可以不用这个,只是用于下载安装包的一个工具,所以能下载好包就是没问题的)
4、需要了解vim的一些基础操作,不懂得可自行百度
1、Zookeeper的单节点部署
1.1、下载
这里用的zookeeper版本为3.6.4
运行命令:
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz
运行命令,进行压缩包下载,下载路径根据个人习惯定。这个命令必须要借助wget,如果没有的自行搜索安装。
1.2、解压缩
运行命令:
tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz -C /opt/service/
如果是直接解压到当前目录下的话,命令的gz后面都不用加,我这边是解压到指定目录“/opt/service”
1.3、目录分析
切换到文件目录
cd /opt/service/apache-zookeeper-3.6.4-bin
# 顺便将这个改个名字,名字太长了不好操作
mv apache-zookeeper-3.6.4-bin/ zookeeper-3.6.4
然后ll
展开目录
结构介绍如下:
- bin:放置运行脚本和工具脚本,如果是Linux环境还会有有zookeeper的运行日志zookeeper.out
- conf:zookeeper默认读取配置的目录,里面会有默认的配置文件
- docs:zookeeper相关的文档
- lib:zookeeper核心的jar
这里我们主要关注的是conf
这个文件
1.4、启动
进入conf,运行命令:
cp zoo_sample.cfg zoo.cfg
复制zoo_sample.cfg并更名为zoo.cfg,后续操作这个文件即可
使用vim命令打开zoo.cfg文件,运行命令:
vim zoo.cfg
会发现这个配置文件中,所以看着很多,但是很多都已经被注释掉了,实际上的配置只有五行。
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
#tickTime:心跳时间,默认2000ms即2s,所有zookeeper的时间都以tickTime的倍数表示,客户端与服务器或服务器与服务器之间维持心跳,每隔1个tickTime时间就会发送一次心跳
#initLimit:初始连接时,从服务器同步到主服务器的最大心跳数,数值为tickTime的倍数
#syncLimit:主从服务器之间请求/应答的最大心跳数,数值为tickTime的倍数
#dataDir:必配,存储数据的目录
#dataLogDir:可配可不配,不配的话默认和dataDir目录一致,表示存储日志的目录
#clientPort:zookeeper服务器端口
这里最好修改一下dataDir这个参数的值,便于我们查找存储数据,比如在zookeeper目录下新增一个data目录存储数据,其他参数保持默认就可以。(非必要,看个人)
启动zookeeper
进入zookeeper的bin目录下,运行命令:
./zkServer.sh start
查看状态,运行命令:
./zkServer.sh status
启动成功
如果想要停止服务的话,运行命令:
./zkServer.sh stop
问题记录
Zookeeper安装时,运行start后查看状态发现并不在运行,如图
解决思路:
进入zookeeper目录下的logs目录,打开out文件
发现错误,这里端口被占用了,需要解决占用
经过搜索得知这是Zookeeper AdminServer,默认使用8080端口,所以需要更改默认端口,在zoo.cfg文件中添加一行admin.serverPort=2180
,保存并重新启动。再次查看状态
启动成功,问题解决!