zookeeper + kafka集群安装部署文档

摘要:
//Downloads.apache.org/zookeper/2将下载的zookeper文件(apache-zookeeper-3.6-bin.tar.gz)上载到服务器。3.解压缩apache-zookeeper-3.6-bin.tar.gztarzxfapache-zookeeper-3.6-bin.tar.gz-C./4并进入conf目录。

 

部署环境

服务

所属ip和占用的端口

zookeeper

192.169.1.71:2181

kafka1

192.169.1.71:9092

kafka2

192.169.1.70:9092

kafka3

192.169.1.21:9092

 

搭建zookeeper + kafka前需要安装jdk,jdk需1.8及以上

一、安装zookeeper

1、下载zookeeper。下载地址:https://downloads.apache.org/zookeeper/

2、将下载的zookeeper文件(apache-zookeeper-3.6.2-bin.tar.gz)上传到服务器上

3、解压apache-zookeeper-3.6.2-bin.tar.gz

tar zxvf apache-zookeeper-3.6.2-bin.tar.gz -C ./

4、进入conf目录下,复制zoo_sample.cfg文件,名字为zoo.cfg (不然启动找不到该文件)

cd ./apache-zookeeper-3.5.7-bin/conf

cp zoo_sample.cfg ./zoo.cfg

5、启动zookeeper服务

进入apache-zookeeper-3.5.7-bin/bin目录下执行如下命令启动服务

sh zkServer.sh start

zookeeper + kafka集群安装部署文档第1张

进入./apache-zookeeper-3.5.7-bin/bin目录下执行如下命令查看zk服务启动状态

sh ./zkServer.sh status

zookeeper + kafka集群安装部署文档第2张

二、安装kafka

 

1、下载kafka。下载地址:http://kafka.apache.org/downloads

2、将下载的kakfa文件(kafka_2.12-2.6.0.tgz)上传到服务器上

3、解压kafka_2.12-2.6.0.tgz

tar zxvf kafka_2.12-2.6.0.tgz -C ./

(2.6.0是kafka版本,2.12是scala版本,kafka是scala语言写的)

4、修改配置文件vi kafka_2.12-2.6.0/conf/server.properties

  •  4.1、broker.id值唯一,kafka集群安装,不同kafka的broker需修改成不一样的值。

   zookeeper + kafka集群安装部署文档第3张

  •  4.2取消listeners前的#号注释,并加上本机的IP

   zookeeper + kafka集群安装部署文档第4张

  • 4.3指定zookeeper连接地址,改成zookeeper服务器地址

   zookeeper + kafka集群安装部署文档第5张

5、启动kafka

进入kafka_2.12-2.6.0/bin目录下执行如下命令启动kafka服务

sh kafka-server-start.sh -daemon ../config/server.properties

6、启动完成后,查看zookeeper集群连接情况

#在apache-zookeeper-3.5.7-bin/bin下执行

sh zkCil.sh
#查看 执行
ls /
#查看连接情况
ls /brokers/ids

 zookeeper + kafka集群安装部署文档第6张

执行ls /brokers/ids出现的id是kafka的broker.id,如果zookeeper管理多个kakfa,那么这里会显示多个kafka的broker.id的值

 

安装启动kafka过程中出现的问题

1、kafka连接zookeeper超时,查看日志(kafkaServer.out):ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING

解决方案:将kakfa配置文件server.properties中的zookeeper.connection.timeout.ms调大一点

zookeeper + kafka集群安装部署文档第7张

三、控制台生产消费测试

1、使用任意一台kafka服务器做生产者

开启控制台生产者,向指定topic写数据

sh kafka-console-producer.sh --broker-list 192.169.1.71:9092 --topic test

 zookeeper + kafka集群安装部署文档第8张

2、使用kafka消费(三台kafka都可消费)

开启控制台消费者,消费指定topic中的数据

./kafka-console-consumer.sh --bootstrap-server 192.169.1.71:9092 --topic test --consumer-property group.id=group_mytest --from-beginning

#注:    --from-beginning:会把test主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。

--consumer-property group.id=group_mytest :指定消费者组id

 zookeeper + kafka集群安装部署文档第9张

四、kafka常用操作命令

 

1、查看当前服务中的所有topic

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

2、创建topic

bin/kafka-topics.sh --zookeeper 192.169.1.71:2181 --create --replication-factor 1 --partitions 1 --topic ztest

--replication-factor 设置副本数量

--partitions设置分区个数

--topic 设置topic名称

3、删除topic

bin/kafka-topics.sh --zookeeper 192.169.1.71:2181 --delete --topic z 

#注:配置文件中delete.topic.enable=true才可删除(官方默认是true)

4、查看某个topic详情

bin/kafka-topics.sh --zookeeper 192.169.1.71:2181 --describe --topic ztest

5、查看某个group消费详情

bin/kafka-consumer-groups.sh --bootstrap-server 192.169.1.70:9092 --describe --group test-group

 

五、工具使用

工具名称:Kafka Tool

1、双击打开,点击小弹窗的close

 zookeeper + kafka集群安装部署文档第10张

2、新建连接

File  -> Add New Connection...

输入Cluster name、Zookeeper Host、Zookeeper Port,然后点击Add按钮

 zookeeper + kafka集群安装部署文档第11张

3、双击Cluster name (我这里的Cluster name取名是chenTest)开始连接,连接成功,Cluster name前面的圆圈显示为绿色

 zookeeper + kafka集群安装部署文档第12张

4、新建topic

选中Topics,点击右边绿色+号弹出新建topic的窗口

 zookeeper + kafka集群安装部署文档第13张

5、输入topic名称,分区数量,副本名称,点击Add创建topic成功

 zookeeper + kafka集群安装部署文档第14张

6、点击绿色按钮,可以展示分区的数据和偏移量

 zookeeper + kafka集群安装部署文档第15张

Message这一列展示的数据是字节内容,不便于查看,可以将其转为字符串显示

7、选中topic -> Properties ->Content Types中的key和message改成String,点击Update

 zookeeper + kafka集群安装部署文档第16张

然后再点击绿色按钮查看Data就变成字符串展示了

 zookeeper + kafka集群安装部署文档第17张

六、注意

 

1、不同消费者组可以消费相同消息

 

参考地址:

kafka : https://kafka.apachecn.org/

 

免责声明:文章转载自《zookeeper + kafka集群安装部署文档》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇优雅地关闭文件流(jdk1.7语法糖)10个经典的Android开源项目(附源码包)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

log4j(转)

让System.out.println回家种田,换句话说,就是该干嘛干嘛去。 您可能在想: System.out.println几乎在每个Java程序里都有那么几行,如何让他老人家回家种田呢? 我们怎么能少了这么重要的革命同志呢? doodoofish这里要说的是"该干嘛干嘛去",不是System.out.println管的就别让他管。想想,我们用Syst...

每个文件之间延迟启动批处理bat方法之一

每个文件之间延迟启动批处理bat方法之一 知识点:xp程序中通过ping 127.0.0.1 -n 20 来实现延时操作,ping本地地址20行。            win7中通过timeout 20 来实现延时20秒。 新建批处理bat文件,  .txt→.bat 改扩展名或txt里另存为.bat就可以 例B是路径名包含空格类的需要用引号" "否则会...

rsync常用命令及格式

rsync在同步文件夹内容这个工作上应用非常广泛,但是rsync本身命令还是比较复杂,本文总结一下: rsync = remote sync的简称 ,它 被用于在linux/unix系统中执行备份操作。rsnync用于从一个位置到另外一个位置同步文件和文件夹。备份的地址可以是本地也可以是remote server。 rsync的重要功能: speed 首次...

android logd 原理及实现

一、logd介绍 logd 是Android L版本提出来的概念,其作用是保存Android运行期间的log(日志)。在Android L之前,log由kernel的ring buffer 保存,在Android L之后,log保存在用户空间。 1)  logd进程启动 系统启动到init函数时会解析init.rc文件,启动logd进程和logd-rein...

静态库与动态库

gcc工作流程和编译原理   1. 预处理 gcc -E   2. 编译 gcc -S   3. 汇编 gcc -c   4. 链接 没参数 gcc的参数   -I 指定头文件的路径   -o 指定生成的文件名   -D 在编译的时候给代码定义宏   -O 优化程序 后面跟 0 1 2 3 这是优化等级   -Wall 在程序编译的时候提示警告信息 比如...

一、tomcat基础介绍及安装部署

一、tomcat介绍Tomcat服务器是一个免费的开放源代码的Web应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP网页的首选。 Tomcat和Nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tom...