irpas技术客

linux环境zookeeper+kafka集群的部署_小han的日常_kafka集群部署 linux

网络 6448

安装包下载地址zookeeper 3.4.9+kafka 2.12_2.6.1 链接:https://pan.baidu.com/s/1aqBQVMxMNa7RrMfxmg65cw? 提取码:s3ms 链接:https://pan.baidu.com/s/1Hr2pcqXUsQMrdxyLkuWZUA? 提取码:9cwl

192.xxx.xxxCentOS Linux release 7.9.2009 (Core)zk+kafka-1192.xxx.xxxCentOS Linux release 7.9.2009 (Core)zk+kafka-2192.xxx.xxxCentOS Linux release 7.9.2009 (Core)zk+kafka-3
?前景分析

zookeeper作为解决分布式一致性问题的工具而被kafka依赖。而分布式模式,即去中心化的集群模式,需要让消费者知道现在有哪些生产者(对于消费者而言,kafka就是生产者)是可用的。如果没了zk消费者如何知道呢?如果每次消费者在消费之前都去尝试连接生产者测试下是否连接成功,效率就会变得很低。

Kafka使用zk的分布式协调服务,将生产者,消费者,消息储存(broker,用于存储信息,消息读写等)结合在一起。同时借助zk,kafka能够将生产者,消费者和broker在内的所有组件在无状态的条件下建立起生产者和消费者的订阅关系,实现生产者的负载均衡。

部署zookeeper集群

(网络需要打通3个端口 2181对外提供服务端口(kafka用),2888 leader和follower通信端口,3888 leader选举的端口)

三台节点部署zookeeper集群

解压文件

tar -xzf zookeeper-3.4.9.tar.gz? -C /usr/local

切换目录

cd /usr/local/zookeeper-3.4.9

?修改配置

1,zookeeper-3.4.9/conf目录下的zoo_sample.cfg文件拷贝一份,命名为“zoo.cfg”,使用以下命令

cp zoo_sample.cfg zoo.cfg

2,创建两个文件夹?

进入cd zookeeper-3.4.9 目录创建两个文件夹zkdata和zklog,命令如下:

mkdir zkdata mkdir zklog

3,?编辑zookeeper的配置文件?

vim zookeeper3.4.9/conf/zoo.cfg

增加如下内容:

其中dataDir为上一步创建的zkdata的绝对路径;dataLogDir为zklog的绝对路径;截图仅供参考

dataDir=/usr/local/zookeeper-3.4.9/zkdata dataLogDir=/usr/local/zookeeper-3.4.9/zklog

?文件末尾添加如下内容,注server.1中的1为myid中的对应的数字标识,node01为节点的ip地址,第一个端口2888为master和slave之间的通信端口,默认是2888;第二个端口3888是leader选举的端口,默认是3888,截图仅供参考

server.1=node01(节点ip地址):2888:3888 server.2=node02:2888:3888 server.3=node03:2888:3888

?4,切换到zkdata目录,

cd zkdata

然后创建文件myid文件,依次写入节点名称1(注意不同节点myid文件里的数字是不一样的,依次为 1? ?2? 3)

echo 1 > myid

?启动

1,依次启动zookeeper节点

切换到 zookeeper3.4.9/bin目录下,使用命令,启动命令如下:

cd zookeeper3.4.9/bin ./zkServer.sh start

2,查看服务状态

./zkServer.sh status

?部署kafka集群 (kafka集群依赖jdk 1.8,如需要,请参考)

linux环境jdk1.8.0的安装_小han的日常的博客-CSDN博客https://blog.csdn.net/weixin_50464533/article/details/123914628?spm=1001.2014.3001.5502

?上传文件

上传压缩包kafka_2.12-2.6.1.tgz

解压安装包,切换解压目录

tar -xzvf kafka_2.12-2.6.1.tgz -C /usr/local cd /usr/local/kafka_2.12-2.6.1

修改kafka配置文件

vim config/server.properties

1,修改属性broker.id=0,不同节点该值不一样,依次递增(0? ?1? ?2);

2,修改kafka监听地址,端口可以使用默认值9092;

listeners=PLAINTEXT://192.168.20.93:9092

如下图所示:

3,修改kafka持久化路径,建议修改为容量大的磁盘路径(该路径用于持久化数据),建议创建多个日志目录(多个目录用逗号分隔),截图仅供参考,如下所示

log.dirs=/tmp/kafka-logs,/opt/kafka-logs

4,修改zookeeper的监听地址,集群地址用逗号隔开(根据自己实际情况填写服务器地址)

zookeeper.connect=192.168.xx.xxx:2181,192.168.xx.xxx:2181,192.168.xx.xxx:2181

5,配置不允许程序创建主题,(防止主题名称不规范,主题列表建议工程维护)

在配置文件末位添加如下:

auto.create.topics.enable=false

6,修改位移主题副本数,建议为3,该参数决定位移主题的高可用

offsets.topic.replication.factor=3

启动

依次在三台机器上部署kafka

1,启动kafka命令,切换到目录 kafka_2.12-2.6.1,使用命令

nohup bin/kafka-server-start.sh config/server.properties >/dev/null 2>&1 &

2,使用如下命令,查看服务启动日志

tailf logs/server.log

3,使用如下命令,查看服务状态

ps -ef |grep kafka

?kafka常用命令(在安装目录下执行)

1,查看主题列表(其中localhost为zookeeper的地址和端口)

bin/kafka-topics.sh --zookeeper localhost:2181 --list

2,创建主题 partition 分区数(负载均衡用,一般分区数越大,吞吐量越大,如果3节点的kafka集群建议为3-6个分区数), replication-factor 副本数(应小于等于启动的集群服务器个数,如果3节点的集群集群建议为3副本)

(其中localhost为zookeeper的地址和端口)

bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic test-perf --partitions 6 --replication-factor 3

3,消费者消费消息测试脚本,其中bootstrap-server为kafka的地址和端口

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-perf --from-beginning

4,生产消息测试脚本,其中bootstrap-server为kafka的地址和端口

bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-perf

5,删除主题?

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic ctsi-ct-vim-perf

如果出现报错:Topic xxxx is marked for deletion.Note: This will have no impact if delete.topic.enable is not set to true.

则需要修改server.properties文件:

然后写入(注意原始文件是没有这个配置的,需要在新的一行里写入这个配置):

delete.topic.enable=true


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #kafka集群部署 #Linux #349kafka #leader选举的端