ZooKeeper是一个分布式应用程序协调服务。一个ZooKeeper集群可以存在多个Follower和Observer服务器,但只允许存在一台Leader服务器。如果Leader服务器宕机,那么ZooKeeper集群的其它服务器会投票选举出一个新的Leader服务器,为防止投票数不过半,从而无法选举出新的Leader服务器现象,通常将ZooKeeper集群中服务器的数量规划为2n+1台,即奇数个。
一、ZooKeeper的集群部署步骤
下载ZooKeeper
访问Apache资源网站下载Linux操作系统的ZooKeeper安装包zookeeper-3.4.10.tar.gz。
上传ZooKeeper安装包
使用SecureCRT远程连接工具连接虚拟机Spark01,在存放应用安装包的目录/export/software/下执行“rz”命令上传ZooKeeper安装包。
安装ZooKeeper
在虚拟机Spark01中,通过解压缩的方式安装ZooKeeper,将ZooKeeper安装到存放应用的目录/export/servers/。命令如下:
tar -zxvf /export/software/zookeeper-3.4.10.tar.gz -C /export/servers/
创建ZooKeeper配置文件
在虚拟机Spark01中,进入ZooKeeper安装目录下的conf目录,复制ZooKeeper的配置文件模
板“zoo_sample.cfg”并命名为“zoo.cfg”。命令如下:
cp zoo_sample.cfg zoo.cfg
修改ZooKeeper配置文件
在虚拟机Spark01中,进入ZooKeeper安装目录下的conf目录,执行“vi zoo.cfg”命令编辑ZooKeeper配置文件zoo.cfg,修改参数“dataDir”配置存储快照文件的目录,添加参数“server.x”指定ZooKeeper集群包含的服务器。参数如下:
dataDir=/export/data/zookeeper/zkdata server.1=spark01:2888:3888 server.2=spark02:2888:3888 server.3=spark03:2888:3888
创建存储快照文件的目录
在虚拟机Spark01中创建参数dataDir配置存储快照文件的目录 。命令如下:
mkdir -p /export/data/zookeeper/zkdata
创建存储快照文件
分别在虚拟机Spark01、Spark02和Spark03 的/export/data/zookeeper/zkdata目录中创建myid文件,在虚拟机Spark01的myid文件中写入值1,在虚拟机Spark02的myid文件中写入值2,在虚拟机Spark03的myid文件中写入值3。值分别如下:
配置ZooKeeper环境变量
在虚拟机Spark01,执行“vi /etc/profile”命令编辑系统环境变量文件profile,配置ZooKeeper环境变量。如下:
export ZK_HOME=/export/servers/zookeeper-3.4.10 export PATH=$PATH:$ZK_HOME/bin
系统环境变量文件profile配置完成后保存并退出即可,随后执行“source /etc/profile”命令初始化系统环境变量使配置内容生效。
配置ZooKeeper
为了便于快速配置集群中其它服务器,需要将虚拟机Spark01中的ZooKeeper安装目录和系统环境变量文件分发到虚拟机Spark02和Spark03。命令如下:
#将ZooKeeper安装目录分发到虚拟机Spark02和Spark03 $ scp -r /export/servers/zookeeper-3.4.10/ root@spark02:/export/servers/ $ scp -r /export/servers/zookeeper-3.4.10/ root@spark03:/export/servers/ #将系统环境变量文件分发到虚拟机Spark02和Spark03 $ scp /etc/profile root@spark02:/etc/ $ scp /etc/profile root@spark03:/etc/
完成分发操作后,分别在虚拟机Spark02和Spark03中执行“source /etc/profile
”命令初始化系统环境变量。
二、ZooKeeper集群启动与关闭
- 启动ZooKeeper集群
分别在虚拟机Spark01、Spark02和Spark03中执行“zkServer.sh start
”命令启动ZooKeeper服务。分别如下图所示:
- 查看ZooKeeper服务状态
分别在虚拟机Spark01、Spark02和Spark03中执行“zkServer.sh status
”命令查看ZooKeeper服务状态。分别如下图所示:
好了,ZooKeeper的集群部署和启动与关闭还是比较简单的,我们就讲到这里了,下一篇我们将讲解Hadoop的集群部署和启动与关闭