Linux环境搭建:https://www.cnblogs.com/Studywith/p/16946297.html
免密连接:https://www.cnblogs.com/Studywith/p/16946310.html
在完成了Linux虚拟机的基础配置后,接下来进行JDK和ZooKeeper相关环境的配置
一.部署JDK
1.官网下载JDK
https://www.oracle.com/java/technologies/downloads/archive/
选择需要的版本即可,这里我使用的是jdk-8u161-linux-x64.tar.gz(PS:老师要求)
2.创建相关文件夹便于记忆
(工作中,每当要部署一台新机器的时候,就意味着有一堆目录需要创建。例如要创建目录“/usr/local/bin”,就需要此次创建“/usr”、“/usr/local”以及“/usr/local/bin”。好在,Linux下mkdir提供了强大的“-p”选项,只要一条命令“mkdir -p /usr/local/bin”就能自动创建需要的上级目录。)
mkdir -p /export/servers/ #软件安装路径 mkdir -p /export/data/ #数据存储路径 mkdir -p /export/software/ #安装包存放路径
3.上传JDK安装包
使用远程连接工具连接虚拟机Node_01,将压缩包上传到/export/software/
4.安装JDK
通过解压缩的方式安装JDK,将JDK安装到存放应用的目录/export/servers/
tar -zxvf /export/software/jdk-8u161-linux-x64.tar.gz -C /export/servers/
5.配置JDK环境变量
执行 vi /etc/profile 命令编辑系统环境变量文件profile
export JAVA_HOME=/export/servers/jdk1.8.0_161 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
6.JDK环境验证
执行 java –version 命令查看JDK版本
7.分发JDK相关文件
通过分发虚拟机node01的JDK安装目录和系统环境变量文件至虚拟机node02和node03的方式,在这两台虚拟机上安装JDK(提前在两个虚拟机上创建相关文件夹)
scp -r /export/servers/jdk1.8.0_161/ root@node02:/export/servers/ scp -r /export/servers/jdk1.8.0_161/ root@node03:/export/servers/ scp /etc/profile root@node02:/etc/profile scp /etc/profile root@node03:/etc/profile
8.验证
二.部署ZooKeeper
ZooKeeper是一个分布式应用程序协调服务。一个ZooKeeper集群可以存在多个Follower和Observer服务器,但只允许存在一台Leader服务器。如果Leader服务器宕机,那么ZooKeeper集群的其它服务器会投票选举出一个新的Leader服务器,为防止投票数不过半,从而无法选举出新的Leader服务器现象,通常将ZooKeeper集群中服务器的数量规划为2n+1台,即奇数个。
1.官网下载JDK
https://zookeeper.apache.org/releases.html#download
旧版本,这里我选择的是zookeeper-3.4.10.tar.gz(老师要求)
2.上传ZooKeeper安装包
同样将压缩包上传到/export/software/
3.安装ZooKeeper
同样通过解压缩的方式安装ZooKeeper,将ZooKeeper安装到存放应用的目录/export/servers/
tar -zxvf /export/software/zookeeper-3.4.10.tar.gz -C /export/servers/
4.配置ZooKeeper
避坑博客:https://blog.csdn.net/u011328843/article/details/84190285
(1)创建zookeeper配置文件
在虚拟机node01中,进入ZooKeeper安装目录下的conf目录,复制ZooKeeper的配置文件模板“zoo_sample.cfg”并命名为“zoo.cfg”
cd /export/servers/zookeeper-3.4.10/conf/ cp zoo_sample.cfg zoo.cfg
(2) 修改zookeeper配置文件
编辑ZooKeeper配置文件zoo.cfg,修改参数“dataDir”配置存储快照文件的目录,添加参数“server.x”指定ZooKeeper集群包含的服务器。
dataDir=/export/data/zookeeper/zkdata server.1=node01:2888:3888 server.2=mode02:2888:3888 server.3=node03:2888:3888
(3) 创建存储快照文件的目录
在虚拟机中创建参数dataDir配置存储快照文件对应的目录 。
mkdir -p /export/data/zookeeper/zkdata
(4)创建myid文件
在虚拟机node01、node02和node03 的/export/data/zookeeper/zkdata目录中创建myid文件,在虚拟机node01的myid文件中写入值1,在虚拟机node02的myid文件中写入值2,在虚拟机node03的myid文件中写入值3。
mkdir -p /export/data/zookeeper/zkdata cd /export/data/zookeeper/zkdata echo 1 > myid #node01 echo 2 > myid #node02 echo 3 > myid #node03
(5) 编辑文件profile
在虚拟机node01,执行“vi /etc/profile”命令编辑系统环境变量文件profile,配置ZooKeeper环境变量。
export ZK_HOME=/export/servers/zookeeper-3.4.10 export PATH=$PATH:$ZK_HOME/bin
![image image](/i/l/?n=23&i=blog/2732352/202212/2732352-20221203193240963-1951413050.png)
(6)分发配置文件
为了便于快速配置集群中其它服务器,需要将虚拟机node01中的ZooKeeper安装目录和系统环境变量文件分发到虚拟机node02和node03。
#将ZooKeeper安装目录分发到虚拟机node02和node03 scp -r /export/servers/zookeeper-3.4.10/ node02:/export/servers/ scp -r /export/servers/zookeeper-3.4.10/ node03:/export/servers/ #将系统环境变量文件分发到虚拟机node02和node03 scp /etc/profile root@node02:/etc/ scp /etc/profile root@node03:/etc/
![image image](/i/l/?n=23&i=blog/2732352/202212/2732352-20221203193242172-45170362.png)
完成分发操作,分别在虚拟机node01,node02和node03中执行“source /etc/profile”命令初始化系统环境变量。
5.ZooKeeper集群的启动与关闭
(1)检查系统防火墙
关闭系统防火墙
#查看防火墙服务启动状态 systemctl status firewalld #关闭防火墙服务(临时) systemctl stop firewalld #禁止防火墙开机启动(永久) systemctl disable firewalld
(2)启动ZooKeeper集群
分别在虚拟机node01、node02和node03中执行“zkServer.sh start”命令启动ZooKeeper服务。
(如果出现command not found说明是环境变量没有配置好,可以重新检查配置或者直接使用./zkServer.sh start等命令)
(3)查看ZooKeeper服务状态
分别在虚拟机node01、node02和node03中执行“zkServer.sh status”命令查看ZooKeeper服务状态。
(4)关闭ZooKeeper集群
Zookeeper集群的关闭比较简单,只需要在虚拟机中分别执行“zkServer.sh stop”命令即可关闭当前虚拟机的Zookeeper服务。
注意点:
标签:node03,zookeeper,JDK,--,虚拟机,ZooKeeper,servers,export From: https://www.cnblogs.com/Studywith/p/16948649.htmlstatus错误参考:http://t.zoukankan.com/fushengliuyi-p-12971263.html
a.由于zookeeper是集群管理工具,又部署在每个节点上,所以启动的时候一定将每个节点的zkService.sh都差不多同时启动。这样查看status时才不会出错
b.虚拟机的防火墙必须关闭
c.查看ZooKeeper的配置文件中的端口号是否被占用
netstat -apn | grep 2181 kill -9 端口号