Kafka集群搭建

kafka需要配合zookeeper使用,在安装kafka之前,需要先安装zookeeper集群,关于安装zookeeper集群。

这里使用三台机器搭建Kafka集群环境。

ip hostname
10.0.20.14 node1
10.0.20.15 node2
10.0.20.16 node3

下载kafka安装包

kafka的官方网站

1
http://kafka.apache.org/downloads
1
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.1/kafka_2.12-2.1.1.tgz

解压包

1
2
3
tar zxf kafka_2.12-2.1.1.tgz
mv kafka_2.12-2.1.1 /opt/kafka
cd /opt/kafka/

配置kafka的配置文件

编辑server.properties文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ vim config/server.properties
broker.id=0
host.name=10.0.20.14
port=9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/kafka/logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=node1:2181,node2:2181,ndoe3:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

注意broker.id每台机器不能一样

分发配置

1
2
scp -r kafka/ 10.0.20.15:/opt/
scp -r kafka/ 10.0.20.16:/opt/

注意修改broker.id

设置环境变量

1
2
3
4
5
$ vim /etc/profile
export KAFKA_HOME=/hadoop/kafka
export PATH=$PATH:$KAFKA_HOME/bin
$ source /etc/profile

启动kafka集群

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

测试kafka集群

创建topic

1
2
$ kafka-topics.sh --create --zookeeper node1:2181,node2:2181,node3:2181 --replication-factor 3 --partitions 3 --topic test
Created topic "test".
  • –create:表示创建
  • –zookeeper 后面的参数是zk的集群节点
  • –replication-factor 3 :表示复本数
  • –partitions 3:表示分区数
  • –topic test:表示topic的主题名称

查看topic

1
2
$ kafka-topics.sh --list --zookeeper node1:2181
test

删除topic

删除topic,需要在server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启

1
2
3
$ kafka-topics.sh --delete --zookeeper node1:2181 --topic test
Topic test is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

执行生产者命令

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

执行该命令,在命令行可以输入消息(生产消息)

执行消费者命令

1
$ kafka-console-consumer.sh --bootstrap-server 10.0.20.14:9092 --from-beginning --topic test
  • –from-beginning:表示从生产的开始获取数据

查看topic详细信息

1
2
3
4
5
$ kafka-topics.sh --topic test --describe --zookeeper node1:2181
Topic:test PartitionCount:3 ReplicationFactor:3 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0,1,2 Isr: 0,1,2
Topic: test Partition: 1 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
Topic: test Partition: 2 Leader: 2 Replicas: 2,0,1 Isr: 2,0,1

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器