centos7配置zookeeper本地模式与集群模式的详细教程

Posted 张小鱼༒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7配置zookeeper本地模式与集群模式的详细教程相关的知识,希望对你有一定的参考价值。

系列文章目录

centos7配置静态网络常见问题归纳_centos7网络问题

虚拟机centos7配置Hadoop单节点伪分布配置教程

卸载centos7自带的jdk的操作步骤


文章目录

一、配置前的前期准备

1.1、zookeeper配置的条件

1.2、配置本地模式

1.3、配置修改

​编辑

1.4、 操作 Zookeeper

1.5、配置参数 解读

 二、zookeeper集群配置

2.1、解压安装与配置

 2.2、集群的群起于群关配置脚本

 总结


前言

本文主要介绍zookeeper的本地模式于集群模式的配置,包含集群启动于关闭脚本,以下为配置步骤


一、配置前的前期准备

1.1、zookeeper配置的条件

条件:centos7已经配置了jdk

配置jdk教程连接:虚拟机centos7配置Hadoop单节点伪分布配置教程

1.2、配置本地模式

拷贝 apache-zookeeper-3.5.7-bin.tar.gz安装 包 到 Linux系统下

解压 到指定目录

[atguigu@hadoop102 software]$ tar zxvf apache zookeeper 3.5.7bin.tar.gz C /opt/module/

修改名称

[atguigu@hadoop102 module]$ mv apache zookeeper 3.5.7 bin/zookeeper 3.5.7

1.3、配置修改

1)将 /opt/module/zookeeper-3.5.7/conf这个 路径下的 zoo_sample.cfg修改 为 zoo.cfg

[atguigu@hadoop102 conf ]$ mv zoo_sample.cfg zoo.cfg

2) 打开 zoo.cfg文件 ,修改 dataDir路径

[atguigu@hadoop102 zookeeper 3.5.7 ]$ vim zoo.cfg

修改如下内容:

dataDir=/opt/module/zookeeper 3.5.7 /zkData

3) 在 /opt/module/zookeeper-3.5.7/这个 目录上创建 zkData文件 夹

[atguigu@hadoop102 zookeeper 3.5.7 ]$ mkdir zkData

 

 

1.4、 操作 Zookeeper

1)启动 Zookeeper

[atguigu@hadoop102 zookeeper 3.5.7 ]$ bin/zkServer.sh start

2)查看进程是否启动

[atguigu@hadoop102 zookeeper 3.5.7 ]$ jps
4020 Jps
4001 QuorumPeerMain

3)查看状态

[atguigu@hadoop102 zookeeper 3.5.7 ]$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper 3.5.7 /bin/../conf/zoo.cfg
Mode: standalone

4)启动客户端

[atguigu@hadoop102 zookeeper 3.5.7 ]$ bin/zkCli.sh

 

5)退出客户端

[zk: localhost:2181(CONNECTED) 0] quit

6)停止 Zookeeper

[atguigu@hadoop102 zookeeper 3.5.7 ]$ bin/zkServer.sh stop

1.5、配置参数 解读

Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
1)tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒

2)initLimit = 10:LF初始通信时限
Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)


3)syncLimit = 5:LF同步通信时限
Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
4)dataDir:保存Zookeeper中的数据
注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。
5)clientPort = 2181:客户端连接端口,通常不做修改。 

补充:Linux选择zookeeper老大的过程是依据上述来确定的

 二、zookeeper集群配置

2.1、解压安装与配置

1)在 hadoop102解压 Zookeeper安装包到 /opt/module/目录下

[atguigu@hadoop102 software]$ tar zxvf apache zookeeper 3.5.7
bin.tar.gz C /opt/module/

2)修改 apache-zookeeper-3.5.7-bin名称为 zookeeper-3.5.7

[atguigu@hadoop102 module]$ mv apache zookeeper 3.5.7 bin/zookeeper 3.5.7

3)配置服务器编号

1)在 /opt/module/zookeeper-3.5.7/这个目录下创建 zkData

[atguigu@hadoop102 zookeeperzookeeper-3.5.73.5.7]$ mkdir zkData

2)在 /opt/module/zookeeper-3.5.7/zkData目录下创建一个目录下创建一个myid的文件的文件

[atguigu@hadoop102 [atguigu@hadoop102 zkDatazkData]$ vi myidvi myid

在文件中添加与在文件中添加与server对应的编号对应的编号(注意:上下不要有空行,左右不要有空格)

2


注意 :添加 myid文件,一定要在文件,一定要在Linux里面创建,在里面创建,在notepad++里面很可能乱码里面很可能乱码
3)拷贝配置好的)拷贝配置好的zookeeper到其他机器上到其他机器上

[atguigu@hadoop102 module ]$ xsync zookeeperzookeeper-3.5.7

并分别 在 hadoop103、hadoop104上修改 myid文件中内容为文件中内容为3、4

在此之前,记得切换到/opt/module/zookeeper-3.5.7/bin目录下,加入Java的路径,配置的时候三个都要配置

 也可以配置i完一个之后分发一下


4)配置zoo.cfg文件
(1)重命名)重命名/opt/module/zookeeper-3.5.7/conf这个目录下的这个目录下的zoo_sample.cfg为 zoo.cfg

[atguigu@hadoop102 confconf]$ mv zoo_sample.cfg zoo.cfg

(2)打开 zoo.cfg文件

[atguigu@hadoop102 confconf]$ vim zoo.cfg

#修改 数据存储路径数据存储路径配置

dataDir=/opt/module/zookeeper zookeeper-3.5.7 /zkData

#增加如下配置增加如下配置

#######################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888


(3)配置参数解读)配置参数解读

server.A=B:C:D

A是一个数字,表示这个是第几号服务器;是一个数字,表示这个是第几号服务器;
集群 模式下配置一个文件模式下配置一个文件myid,这个文件在这个文件在dataDir目录 下,这个文件里面有一个数据下,这个文件里面有一个数据就是 A的值,的值,Zookeeper启动时读取此文件,拿到里面启动时读取此文件,拿到里面的数据与数据与zoo.cfg里面 的配置信息比的配置信息比较从而判断到底是哪个较从而判断到底是哪个server。
B是这个服务器的地址;是这个服务器的地址;
C是这个服务器是这个服务器Follower与集群中的与集群中的Leader服务器交换信息的端口;服务器交换信息的端口;
D是万一集群中的万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。,而这个端口就是用来执行选举时服务器相互通信的端口。
(4)同步 zoo.cfg配置文件配置文件

[atguigu@hadoop102 conf]$ xsync zoo.cfg

可以看到106结点有了刚才在105做的配置文件 

5)集群操作
1)分别启动)分别启动Zookeeper

 [atguigu @hadoop102 zookeeper zookeeper-3.5.73.5.7]$ bin/zkServer.sh start

[atguigu@hadoop103 zookeeper-3.5.7]$ bin/zkServer.sh start
[atguigu@hadoop104 zookeeper-3.5.7]$ bin/zkServer.sh start

2)查看状态

[atguigu@hadoop102 zookeeper-3.5.7]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Mode: follower
[atguigu@hadoop103 zookeeper-3.5.7]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Mode: leader
[atguigu@hadoop104 zookeeper-3.4.5]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Mode: follower

三个节点的分布情况

 2.2、集群的群起于群关配置脚本

1)在bin目录下配置脚本

创建一个zk.sh文件并且写入相关的配置

[atguigu@hadoop102 bin]$ vim zk.sh

2)写入内容

ps:此处小编的是105、106、107结点,具体操作时将对应的位置配置好就好了 

按esc保存退出

:wq

2)增加脚本执行 权限

chomd  u+x zk.sh或者chomd 777 zk.sh【两者任选其一】 


3 )Zookeeper集群 启动脚本

[atguigu@hadoop102 module]$ zk.sh start

查看其他两个结点

 

 4) Zookeeper集群 停止脚本

[atguigu@hadoop102 module]$ zk.sh stop

查看其他两个结点

 

 

 至此zookeeper的集群配置就已经全部完成了

 总结

配置过程要书写正确的语句,以上就是今天的内容

最后欢迎大家点赞👍,收藏⭐,转发🚀,
如有问题、建议,请您在评论区留言💬哦。

Zookeeper与Kafka集群搭建

 一 :环境准备:

  • 物理机window7 64位
  • vmware 3个虚拟机 centos6.8  IP为:192.168.17.[129 -131]
  • JDK1.7安装配置
  • 各虚拟机之间配置免密登录
  • 安装clustershell用于集群各节点统一操作配置

1 :在此说明一下免密和clustershell的操作和使用方式

1.1 :配置免密登录(各集群节点间,互相操作对方时,只需要输入对方ip或者host即可,不需要输入密码,即:免密登录)

1.1.2 :生成密钥文件和私钥文件 命令

ssh-keygen -t rsa

1.1.3 :查看生成秘钥文件

  ls /root/.ssh

1.1.4 : 将秘钥拷贝到对方机器

  ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.17.129

  ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.17.130 

  ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.17.131

1.1.5 :测试互相是否连接上

  可以分别在不同节点间互相登录操作一下

 ssh root@192.168.17.130

 hostname

1.2 : clustershell的安装

  备注一下,我是安装的centos6.6 mini无界面版本,通过yun install clustershell安装时,会提示no package ,原因yum源中的包长期没有更新,所以使用来epel-release

安装命令:

 sudo yum install epel-release

然后在yum install clustershell 就可以通过epel来安装了

1.2.2 : 配置cluster groups

  vim /etc/clustershell/groups 

  添加一个组名:服务器IP或者host 

  kafka:192.168.17.129 192.168.17.130 192.168.17.131

二 :Zookeeper和Kafka下载

本文使用的zookeeper和kafka版本分别为:3.4.8 , 0.10.0.0 

1 :首先到官网进行下载:

将压缩包放在自己指定的目录下,我这里放在了/opt/kafka 目录下

然后,通过clush 将压缩包copy到其它几个服务节点中

clush -g  kafka  -c /opt/kafka

2 :通过clush来解压缩所有节点的zk和kafka压缩包

clush -g kafka tar zxvf  /opt/kafka/zookeeper-3.4.8

clush -g kafka tar zxvf /opt/kafka/kafka_2.11-0.10.1.0

3 : 将zoo_sample.cfg 拷贝一份为zoo.cfg   (默认的zookeeper配置文件)

  修改配置,zoo.cfg文件 

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/tmp/zookeeper   
# the port at which the clients will connect
clientPort=2181   ## zk 默认端口
 
## 节点IP和端口
server.1=192.168.17.129:2888:3888
server.2=192.168.17.130:2888:3888
server.3=192.168.17.131:2888:3888
 
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1 

3 : 创建tmp/zookeeper 用来存储zk信息

 mkdir /tmp/zookeeper 

4 : 为每个tmp/zookeeper 设置一个myid的文件,内容为节点id 1 or 2 or 3 

  echo "1" > myid
5 : 关闭防火墙(最好的做法是找运维人员配置防火墙策略,而不是关闭)
clush -g kafka "service iptables status"
clush -g kafka "service iptables stop" 
6 :启动所有节点的zookeeper(其它节点也都已经配置来zoo.cfg 和 创建了/tmp/zookeeper myid)
clush -g kafka /opt/kafka/zookeeper/bin/zkServer.sh start /opt/kafka/zookeeper/conf/zoo.cfg 
7 : 查看ZK 2181端口是否启动
clush -g kafka lsof -i:2181
 
8: 测试数据是否同步,创建一个节点test 并给一个值叫 hello
bin/zkCli.sh -server 192.168.17.130:2181
create /test hello
然后分别在其它几台节点查看是否已经创建成功,是否有值 
 
通过 get /test 查看节点下面的值
 
Ok ,Zookeeper集群已经安装完成,接下来开始部署kafka!!

三 :Kafka安装部署

1 :进入到config -> server.properties
编辑 zookeeper.connection 
 zookeeper.connect=192.168.17.129:2181,192.168.17.130:2181,192.168.17.131:2181  
2 :启动kafka
 /opt/kafka/kafka_2.11-0.10.1.0/bin/kafka-server-start.sh -daemon /opt/kafka/kafka_2.11-0.10.1.0/config/server.properties
3 :创建topic 
bin/kafka-topics.sh --zookeeper 192.168.17.129:2181 -topic topicTest --create --partition 3 --replication-factor 2
4 :查看kafka topic 
[root@Kafka01 kafka_2.11-0.10.1.0]# bin/kafka-topics.sh --zookeeper 192.168.17.129:2181 -topic topicTest --describe
5 :【测试】启动console-consumer 来订阅消息
bin/kafka-console-consumer.sh --zookeeper 192.168.17.130:2181 --topic topicTest
6 :【测试-打开一个新的终端】启动console-producer 来生产消息 
 bin/kafka-console-producer.sh --broker-list kafka02:9092 --topic topicTest
7 : 测试发生产消息和订阅者接收消息
 
注 : kafka和zookeeper中的所有的连接地址最好是通过host:port来配置。 kafka默认是通过hostname来访问的 如果设置是ip的话 ,编辑 /etc/hosts  绑定对应机器的host , 否则启动消费之后,会报警告异常如下:
 
 
 

以上是关于centos7配置zookeeper本地模式与集群模式的详细教程的主要内容,如果未能解决你的问题,请参考以下文章

Zookeeper下载本地模式安装集群操作

Zookeeper-集群与单机实践

Zookeeper 安装步骤

在CentOS7中搭建Zookeeper集群

亲测有用!Centos7 + Zookeeper集群 + Hadoop集群配置

Zookeeper安装与配置