由于工作需要做一个项目测试,需要本地安装指定一个版本的zookeeper,然后将另一个zookeeper项目的数据全部都导入到本地的项目中。
1.在dockerhub中搜索指定的版本
访问https://hub.docker.com/
搜索zookeeper,点击Tags页签,可以看到相应的版本。
在对应的版本的右侧有下载拉取镜像的命令。
2.docker安装指定版本的zookeeper及启动
先执行命令拉取镜像
~% docker pull zookeeper:3.4.14
~% docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zookeeper 3.4.10 d9fe1374256f 3 years ago 144MB
启动zookeeper容器
~% docker run -d -p 2181:2181 --name local-zookeeper --restart always d9fe1374256f
3.安装、配置和启动zkui
zkui的github地址为
https://github.com/DeemOpen/zkui.git
因为我的zookeeper在本地,所以将项目直接导入idea后,运行Main
就可以了,如果需要修改zookeeper的地址或者服务启动后的访问端口的话,就修改config.cfg
的配置文件就可以了。要修改的属性如下图
#服务端口
serverPort=9090
#zk地址
zkServer=localhost:2181
#默认登录用户的用户名和密码
userSet = {"users": [{ "username":"admin" , "password":"manager","role": "ADMIN" },{ "username":"appconfig" , "password":"appconfig","role": "USER" }]}
启动以后,就可以直接访问http://localhost:9090
访问zkui了。
如果需要部署到服务器上的话,可以将应用先包,在代码目录里执行命令
# 打包
~% mvn clean package -Dmaven.test.skip=true
# 复制配置文件到target目录,然后修改相应配置
~% cp config.cfg target/
# 启动
~% java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar
4.使用zkui导出及导入zookeeper数据
登录zkui以后,点击expot就可以将配置导出,会打开一个新网页展示所有的配置,将这个网页保存为txt文件。
然后在另一台zookeeper的zkui中点击Import菜单,然后将刚刚导出的文本导入就可以了。
zookeeper的数据导出真的是不好弄,在网上找了很多的文档,用日志文件的方式不管是增量日志还是全量日志,我操作还原数据都没有成功,也是正好看到zkui有导出和导入的功能,用真来是真的香。