Zookeeper单机部署单服务过程(非docker方式)
zk这东西太优秀了,分布式锁、分布通知/协调(配置管理)、分布式队列、集群管理、数据发布与订阅等场景,最佳中间件,虽然zk有很多强大的特性,但一般公司的项目不会用得太多,集群管理、分布式锁应该是绝大部分公司最常用的zk两个特性!个人将对zk的单机以及集群安装和配置、基本命令使用、zk设计原理以及应用层实例使用进行全面记录。
1、JDK安装
通过压缩包方式安装,jdk官网下载:
https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
最新jdk12.0.2下载包:
个人习惯将环境放置/opt目录下,建议保留jdk安装包目录名,因为该目录名显示jdk版本号,方便后续升级或者漏洞补丁处理的版本查看
wget https://download.oracle.com/otn-pub/java/jdk/12.0.2+10/e482c34c86bd4bf8b56c0b35558996b9/jdk-12.0.2_linux-x64_bin.tar.gz
解压
tar -xzf jdk-12.0.2_linux-x64_bin.tar.gz
将jdk路径配置到系统环境中
vi~/.bash_profile# 将以下追加到文件末尾exportJAVA_HOME=/opt/jdk-12.0.2exportJRE_HOME=/$JAVA_HOME/jreexportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexportPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin生效环境配置
source ~/.bash_profile
查看java 版本
java version
2、zookeeper单服务器安装
2.1 个人选择一个稳定的zookeeper-3.4.14
http://mirror.bit.edu.cn/apache/zookeeper/stable/
同样放置子/opt目录下
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
解压
tar-xzf zookeeper-3.4.14.tar.gz[root@dn2 opt]# lshadoop-2.7.5.tar.gz jdk-12.0.2 zookeeper-3.4.142.2 配置zk
在 zk目录下新建data和logs目录
[root@dn2 zookeeper-3.4.14]# mkdir data logs
拷贝一个zk的配置文件,用到实际项目中
[root@dn2 zookeeper-3.4.14]# cp conf/zoo_sample.cfg zoo.cfg# 修改zoo.cfg的data目录和logs目录路径vizoo.cfg# 修改监听客户端连接端口为五位数,信息安全等保要求重要端口都建议5位数clientPort=32181# 修改dataDir=/opt/zookeeper-3.4.14/data# 新增dataLogDir=/opt/zookeeper-3.4.14/logs将zk加入环境变量
vi~/.bash_profile 新增 ZOOKEEPER_HOME=/opt/zookeeper-3.4.14exportPATH=$ZOOKEEPER_HOME/bin:$PATHsource ~/.bash_profile
2.3 启动zk
# 启动zk[root@dn2 opt]# zookeeper-3.4.14/bin/zkServer.sh startZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg Starting zookeeper... STARTED#查看进程[root@dn2 bin]# jps4728 Jps 4668 QuorumPeerMain#QuorumPeerMain是zookeeper进程,启动正常# 查看状态[root@dn2 bin]# ./zkServer.sh statusZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg Mode: standalone# 查看zk服务日志,打印后10条日志看看[root@dn2 bin]# tail -n 10 -f zookeeper.out# 停止zk服务[root@dn2 bin]# ./zkServer.sh stopZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg Stopping zookeeper... STOPPED连接zkserver
因为是本地单机,可以无须制定IP即可用cli登录
[root@dn2 bin]# ./zkCli.sh Connecting to localhost:2181 # 若登录远程(部署多台或集群),指定远程IP即可 [root@dn2 bin]# ./zkCli.sh -192.168.100.5:2181 Connecting to localhost:2181 # 列出根路径下的节点,可以看到仅有zk的默认节点,注意“zookeeper”是zk保留字 [zk: localhost:2181(CONNECTED) 0] ls / [zookeeper] # 退出连接 quit裸机部署zk单实例服务过程相对简单,在下一篇blog将给出集群部署,因测试环境无法提供多台真实服务器进行部署,所以这个集群是在一台服务器上实现,部署过程根但实例差别不大,另外也会给出使用docker部署zk集群。
