开发者学堂课程【大数据 ZooKeeper 快速入门: 集群搭建:配置文件修改&启动】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/549/detail/7586
集群搭建:配置文件修改&启动
目录
一、检测 JDK 安装
二、配置防火墙
三、解压安装
四、启动 zookeeper
下面进行如何搭建 Leader 基于 Follower 模式的集群,前提是创建好三台虚拟机
一、Zookeeper 搭建
1.检测 JDK 安装
安装前需要安装好 jdk,在三台机器上分别检测
#使用 java-version
查看是否安装 jdk
[root@node-1]# java -version
运行结果:
java version "1.8.o6s i
java(TM) SE RuntimeEnvironment (bui1d_1.8.0_65-b17)
j
ava Hotspot(TM)64-Bit server vw(build 25.65-b0i,mixed mode)
2. 配置防火墙等
(1)检测集群时间是否同步
发送 date 命令到所有机器上,若是时间不同步就会在分布式环境下发生错误
(2)检测防火墙是否关闭:端口进行通信,未关闭访问不通
[root@node-1]# service iptables stop
运行结果:
iptab1es : setting chains to po1icy ACCEPT: fi1ter 【ok】
iptab les : Flushing firewa17 rules :
【ok】
iptab 7es : Un7oading modu 1es :
【ok】
#永久关闭防火墙,除非手动的开启
[root@node-1]# chekconfig iptables off
(3)检测主机 ip 映射有没有配置
3. 解压安装
#切换到安装包目录,将 zookeeper 安装包上传至该目录下
#解压
[root@node-1 server]# tar zxvf zookeeper-3.4.5.tar,gz
#重命名
[root@node-1 server]# mv zookeeper-3.4.5.tar,gz zookeeper
#删除安装包
[root@node-1 server]# rm -rf zookeeper-3.4.5.tar,gz
最终结果文件:
#配置 zookeeper 环境变量
[root@node-1 server]# vi /etc/profile
添加代码:
export zOOKEEPER_HOME=/ home/ hadoop/zookeeper
export PATH=$PATH:$
Z
OOKEEPER_HOME/bin
#刷新配置文件
[root@node-1 server]# source /etc/profile
#修改 zookeeper 配置文件
[root@node-1 conf]#
cd zookeeper/ conf
[root@node-1 conf]#
cp zoo_sample.cfg zoo.cfg
[root@node-1 conf]#
vi zoo.cfg
添加内容:
dataDir=/root/apps/zookeeperzkdata
##(心跳端口、选举端口)
#当前集群有三台服务器
server. 1=
node-1
:2888:3888
server. 2=
node-2
:2888:3888
server. 3=
node-3
:2888:3888
#此处使用 node-1,原因在于配置好了域名映射
创建文件夹:运行时存放数据
[root@node-1 conf]#
cd / home/ hadoop/ zookeeper/
[root@node-1 conf]#
mkdir zkdata
在 data 文件夹下新建 myid 文件,myid 的文件内容为:
#表示所有的数据都在此目录下
[root@node-1 data]#mkdir
zkdata
[root@node-1 data]#
cd zkdata
[root@node-1 zkdata]#
echo 1 > myid
#端口号默认情况下不修改
#分发安装包到其他机器
[root@node-1 conf]#
scp -r
/
root
/
apps root@
node-
2 :/ root/
[root@node-1 conf]#
scp -r
/
root/ apps root
@node-
3 :/ root/
#修改其他机器的配置文件
#修改 myid 文件
到 node-2上:修改 myid 为:2
到 node-3上:修改 myid 为:3
4.启动 zookeeper
[root@node-1 conf]#
zkserver.sh start
运行结果:
J
MX
enabled by defau
Usingconfig:/export/server/zookeeper/bin/../conf/zoo,cfg
starting zookeeper ... STARTED
#在三台机器上分别启动 node-2和 node-3
或者编写一个脚本来批量启动所有机器:
for host in "
node-1node-2 node-3
"
do
ssh
=
$host"source/etc/profile;/root/apps/zookeeper/bin/zkServer.sh start"
#查看集群状态
jps (查看进程)
zkserver.sh status(查看集群状态,主从信息)
#查看启动状态
[root@node-1 conf]#
zkserver.sh sta
tus
J
MX
enabled by defau
Usingconfig:/export/server/zookeeper/bin/../conf/zoo,cfg
Mode:follower
#当前角色为追随者
#配置文件参数说明
tickTime这个时间是作为 zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每 个 tickTime 时间意 initLimit 这个配置项是用来配置 zookeeper 接受客户端(这里所说的客户端不是用户连接 zookeeper 服务器的客户端,而当已经超过10个心跳的时间(也就是 tickTime)长度后 zookeeper 服务器还没有收到客户端的返回信息,那么表明这个?syncLimit 这个配置项标识 leader 与 follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickime 的时间长dataDir 顾名思义就是 zookeeper 保存数据的目录,默认情况下 zookeeper 将写数据的日志文件也保存在这个目录里;
clientPort 这个端口就是客户端连接 zookeeper 服务器的端口, Zookeeper 会监听这个端口接受客户端的访问请求;
server.A=B:C:D 中的 a 是一个数字,表示这个是第几号服务器,B 是这个服务器的 re 地址,c 第一个端口用来集群成员的信息