zookeeper与kafka基础集群搭建记录

zookeeper与kafka基础集群搭建记录

一、zookeeper

1. 下载

2. 安装

(1)简单单机安装脚本

拿着压缩包一次安装成功,没什么意外,贴上安装指令。

#!/bin/bash
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
mv apache-zookeeper-3.7.0-bin /usr/local/zookeeper
rm -rf apache-zookeeper-3.7.0-bin.tar.gz
mkdir -p /var/lib/zoopkeeper
cat > /usr/local/zookeeper/conf/zoo.cfg << EOF
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
EOF

启动:/usr/local/zookeeper/bin/zkServer.sh start
状态:/usr/local/zookeeper/bin/zkServer.sh status
停止:/usr/local/zookeeper/bin/zkServer.sh stop

(2)集群配置

vim /usr/local/zookeeper/conf/zoo.cfg

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=20
syncLimit=5
server.1=0.0.0.0:2888:3888
server.2=192.168.10.152:2888:3888
server.3=192.168.10.153:2888:3888

参数解释:

  1. tickTime:CS通信心跳时间。
  2. initLimit:集群中的follower服务器(F)与leader服务器(L)之间初连接时能容忍的最多心跳数(tickTime的数量)。
  3. syncLimit:集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数。
  4. dataDir:该属性对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
  5. clientPort:客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问!这个端口默认是2181。
  6. service.N:service.N =A:B:C。
    1. N:服务器编号,即后面会配置的一个myid文件内的值。
    2. A:集群内其他机器可ping通的一个本机地址。
    3. B:Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888)。
    4. C:选举端口(默认是3888)。

单机改为集群有两个注意点,

  • zoo.cfg中本机的地址(A部分)更改为0.0.0.0。
  • 在dataDir目录下创建myid的文件,里面填入本机地址对应的服务器编号(N部分)。

所有集群机器配置修改完毕后,正常启动即可。
所有机器启动zookeeper完毕后,使用查看状态命令:

Leader状态

/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

follower状态

/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

二、kafka

1. 下载

2. 安装

为了在server.properties中的listeners项与zookeeper.connect项填入主机名能找到对应的机器。在所有集群机器增加hosts表。以下使用我集群主机名来进行配置示例。

以你的主机名和ip地址来替换,追加到hosts下。
vim /etc/hosts,追加

192.168.10.151 centos7-1
192.168.10.152 centos7-2
192.168.10.153 centos7-3

快速安装

tar -zxvf kafka_2.13-3.0.0.tgz
mv kafka_2.13-3.0.0 /usr/local/kafka
mkdir /tmp/kafka-logs
rm -rf kafka_2.13-3.0.0.tgz
vim /usr/local/kafka/config/server.properties

需要修改的参数解释:

  1. broker.id:每个broker的唯一标识符,不可重复,默认为0。
  2. listeners:套接字服务器侦听的地址,修改为PLAINTEXT://centos7-1:9092。
  3. zookeeper.connect:zookeeper地址,使用主机名:端口配置,集群用逗号分隔。

所以在centos7-N机器中,可以应用以下配置(N为数字,自增变化)

broker.id=1
listeners=PLAINTEXT://centos7-N:9092
zookeeper.connect=centos7-1:2181,centos7-2:2181,centos7-3:2181

启动
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.propertie

创建topic测试
/usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server centos7-1:9092 --replication-factor 1 --partitions 1 --topic test

查看所有topic
/usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server centos7-1:9092

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×