本节概览:介绍了部署kafka的单点和集群两种模式。
1 部署zookeeper
2 部署kafka
2.1 单节点
1、下载kafka_2.12-1.0.0.tgz
2、解压
3、在解压目录下,config/server.properties,内容如下
1 2 3 |
broker.id=0 log.dirs=/Users/wuzhonghu/data/kafka-logs zookeeper.connect=localhost:2181 |
(1) 当需要指定多个zookeeper,如下
1 |
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181 |
4、启动
1 |
./bin/kafka-server-start.sh config/server.properties |
启动显示如下信息
1 2 3 4 |
..... [2018-03-07 00:16:40,445] INFO Kafka version : 1.0.0 (org.apache.kafka.common.utils.AppInfoParser) [2018-03-07 00:16:40,445] INFO Kafka commitId : aaa7af6d4a11b29d (org.apache.kafka.common.utils.AppInfoParser) [2018-03-07 00:16:40,448] INFO [KafkaServer id=0] started (kafka.server.KafkaServer) |
通过”-daemon”可以后台运行,如下(当然也可以通过nohup来后台运行)
1 |
./bin/kafka-server-start.sh -daemon config/server.properties |
5、验证
(1)创建主题
1 2 3 |
wuzhonghu@B000000064800:~/local/kafka_2.12-1.0.0$sh bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic firstttopic Created topic "firsttopic". |
(2)查看主题
1 2 3 4 |
wuzhonghu@B000000064800:~/local/kafka_2.12-1.0.0$ sh bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic firstttopic Topic:firstttopic PartitionCount:1 ReplicationFactor:1 Configs: Topic: firsttopic Partition: 0 Leader: 0 Replicas: 0 Isr: 0 |
(3)往主题发送消息
1 2 3 |
$ sh bin/kafka-console-producer.sh --broker-list localhost:9092 --topic firtstopic >Test message1 >Test message2 |
(4)从主题上查看消息
1 2 3 |
$ sh bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic firtstopic --from-beginning Test message1 Test message2 |
2.2 部署集群
部署集群,其实就是在每一个机器上都进行单点部署,只是server.properties文件中的broker.id不同。如配置三台机器的如下:
(1)节点1
1 2 3 |
broker.id=0 logs.dirs=/home/kafka/data zookeeper.connect=zk1:2181,zk2:2181,zk3:2181 |
(2)节点2
1 2 3 |
broker.id=1 logs.dirs=/home/kafka/data zookeeper.connect=zk1:2181,zk2:2181,zk3:2181 |
(3)节点3
1 2 3 |
broker.id=3 logs.dirs=/home/kafka/data zookeeper.connect=zk1:2181,zk2:2181,zk3:2181 |
3 管理kafka
3.1 主题相关操作
通过kafka-topics.sh来实现,具体操作如下:
1、 创建主题–create
1 |
sh bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic firtsttopic |
- –replication-factor 分区备份个数
- –partions 指定分区个数
- –topic 指定主题名字
- –create 创建主题命令
- –zookeeper 指定zookeeper的地址
2、增加分区–alter
如下增加分区到3
1 |
sh bin/kafka-topics.sh --alter --zookeeper localhost:2181 --topic firtsttopic --partitions 3 |
3、删除主题–delete
broker的delete.topic.enable的属性需要设置为true,如果为false,则不支持删除主题操作。删除命令如下:
1 |
sh bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic firtsttopic |
4、查看所有主题–list
1 |
sh bin/kafka-topics.sh --zookeeper localhost:2181 --list |
这个命令指示列出所有topic的名字,如果查看topic详细信息,需要通过–describe
5、查看所有主题详细信息–describe
1 |
sh bin/kafka-topics.sh --zookeeper localhost:2181 --describe |
可以查看topic的分区情况,
1 2 3 4 5 6 7 |
Topic:test_topic PartitionCount:6 ReplicationFactor:3 Configs: Topic: test_topic Partition: 0 Leader: 6 Replicas: 6,1,2 Isr: 2,6,1 Topic: test_topic Partition: 1 Leader: 1 Replicas: 1,2,3 Isr: 2,3,1 Topic: test_topic Partition: 2 Leader: 2 Replicas: 2,3,4 Isr: 2,4,3 Topic: test_topic Partition: 3 Leader: 3 Replicas: 3,4,5 Isr: 4,5,3 Topic: test_topic Partition: 4 Leader: 4 Replicas: 4,5,6 Isr: 4,5,6 Topic: test_topic Partition: 5 Leader: 5 Replicas: 5,6,1 Isr: 5,6,1 |
- partion:0,表示pation的id为0
- leader:6,表示broker.id=6节点为leader
- Replicas:6,1,2 表示当前partion在broker.id为6、1、2的节点
如果想要查看指定的主题,通过-topic firtsttopic参数
1 |
sh bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic firtsttopic |
6、查看lag
方式1:sh kafka-consumer-offset-checker.sh –zookeeper 10.152.94.13:2181 –topic 83000281_profit_change –group group-ExchangeProfitConsumer
方式2:kafka-0.9之后,就不支持kafka.tools.ConsumerOffsetChecker了。可以使用如下命令:
1 |
sh bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe -group group0323 |
3.2 消费者群组
通过kafka-consumer-group.sh来实现。
1、查看群组信息–list
1 |
sh bin/kafka-consumer-groups.sh --list --zookeeper localhost:2181 |
可以通过–describe和-group来查看一个分组详细信息
1 |
sh bin/kafka-consumer-groups.sh --describe --zookeeper localhost:2181 --group testgroup |
(全文完)