一、背景
最近在学习 kafka
,此处记录一下 mac
上 搭建 kafka
集群的步骤。
二、装置软件
因为 kafka
依赖 zookeeper
因而须要装置 zookeeper
,而 kafka
是基于 scala
语言编写,scala
又是基于 jdk
的,因而须要装置 jdk
。
1、JDK , 举荐在 jdk8
及以上的版本,此处装置 jdk
略。
2、zookeeper , 在本机搭建一个 3 个节点的 zk 伪集群。
3、kafka 在本地搭建一个 3 个节点的 kafka 集群。
三、装置步骤
1、搭建一个 3 个节点的 zk 伪集群
ip | 客户端连贯端口 | 集群选举接口 | 集群原子播送接口 | server.id 中 id 的值 | 节点名,目前没用到,这个配置到 hosts 文件中 |
---|---|---|---|---|---|
127.0.0.1 | 2181 | 12888 | 13888 | 1 | zk01 |
127.0.0.1 | 3181 | 22888 | 23888 | 2 | zk02 |
127.0.0.1 | 4181 | 32888 | 33888 | 3 | zk03 |
留神:
1、server.id
的中的 id
的配置是在 zoo.cfg
配置文件的 dataDir
配置项指定的目录中 创立 myid
文件指定的。
1、下载 zookeeper 安装包
get https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
2、解压三份,并搁置在 zookeeper 目录中
3、批改 zookeeper 配置文件,此处以 zk01 为例子
1、批改 conf 目录下的 zoo_sample.cfg 为 zoo.cfg
2、编辑 zoo.cfg 配置文件
留神:
1、此处拿 zk01 为示例编写,因为是本地上启动多个,所以 需要批改端口
2、各个服务器上的 myid
文件对应的值 都应该不一样,且惟一。
3、dataDir
的门路须要批改。
4、其余的配置能够看着批改,看具体的状况。
5、启动 3 个 zk 节点
别离进入到 zk01/bin
,zk02/bin
,zk03/bin
目录下执行 如下命令
./zkServer.sh --config ../conf start
6、连贯 zk
集群
./zkCli.sh -server 127.0.0.1:2181,127.0.0.1:3181,127.0.0.1:4181
2、搭建一个 3 个节点的 kafka 集群
ip | 客户端连贯端口 | broker.id |
---|---|---|
127.0.0.1 | 9092 | 0 |
127.0.0.1 | 9093 | 1 |
127.0.0.1 | 9094 | 2 |
留神:
1、broker.id
的值必须惟一,且是数字。
1、下载 kafka
https://www.apache.org/dyn/closer.cgi?path=/kafka/2.6.0/kafka_2.13-2.6.0.tgz
2、解压 3 份, 并搁置到 kafka 目录中
3、批改 server.properties 文件,此处以 kafka01 为例子
须要批改的属性
,此处以kafka01
为示例, 不同的接口批改具体的值
属性名 | 属性值 | 形容 |
---|---|---|
broker.id | 0 | 每个 kafka 节点上配置的都须要不一样 |
listeners | PLAINTEXT://127.0.0.1:9092 | 每个 kafka 节点上配置的都须要不一样,PLAINTEXT 示意明文传输 |
log.dirs | ../logs | 日志文件门路 |
zookeeper.connect | 127.0.0.1:2181,127.0.0.1:3181,127.0.0.1:4181 | zk 服务器地址 |
num.partitions | 1 | 主题默认的分区数 |
log.retention.hours | 168 | 管制日志文件保留的工夫, 单位小时 |
4、启动 3 个 kafka 节点
顺次进入到 kafka01/bin
,kafka02/bin
,kafka03/bin
目录, 执行如下命令
./kafka-server-start.sh ../config/server.properties &
5、kafka 测试
此处以 kafka01
作为示例
1、创立一个主题
bin/kafka-topics.sh --create --topic test-001 --replication-factor 1 --partitions 1 --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094
2、查看主题信息
bin/kafka-topics.sh --describe --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094 --topic test-001
3、往创立的主题中公布一条信息
bin/kafka-console-producer.sh --topic test-001 --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094
4、读取刚刚往主题中公布的音讯
bin/kafka-console-consumer.sh --topic test-001 --from-beginning --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094
到此,一个简略的可用的 kafka 集群就搭建结束了。
四、参考文档
1、https://zookeeper.apache.org/
2、https://kafka.apache.org/documentation/#quickstart