kafka集群搭建(五)

kafka进群搭建

安装顺序

1. 解压安装包

tar -zxvf kafkaXXXX

2. 修改配置文件
broker.id=0 --在集群内唯一
num.partitions = --每个主题的分区数量,默认是1,可以增加分区的数量但不能减少分区的数量
default.replication.factor=2 --消息备份副本数,默认为1,即不进行备份
listeners --socket的监听地址
log.dir = kakfa2.0.0/kafka-log --kafka消息数据的存储位置
zookeeper = centos01:2181,centos02:2181 --zookeeper连接
3. 发送安装文件到其他节点
scp -r /opt/modules/kafka-2.0.0 hadoop@centos02:/opt/modules/
4. 启动zk集群
在每台机上执行zkServer.sh start
5. 启停kfka集群
在每台机上执行 
bin/kafka-server-start.sh -daemon config/server.properties
(bin/kafka-server-start.sh  config/server.properties &
)
关闭 :bin/kafka-server-stop.sh stop

6. 创建topic
bin/kafka-topics.sh --create --zookeeper centos01:2181,centos02:2181,centos03:2181 --replication-factor 2 --partitions 2 --topic topictest
--查看topic
bin/kafka-topics.sh --list --zookeeper centos01:2181

--查看主题的详情
bin/kafka-topics.sh --describe --zookeeper centos01:2181 --topic topictest

    Topic:topictest	PartitionCount:2	ReplicationFactor:2	Configs:
	Topic: topictest	Partition: 0	Leader: 0	Replicas: 0,1	Isr: 0,1
	Topic: topictest	Partition: 1	Leader: 1	Replicas: 1,2	Isr: 1,2


topic :主题名称
PartitionCount:分区数量
ReplicationFactor:副本数量
Partition:分区编号
Leader:领导者副本所在的broker,这里指安装kafka集群时所设置的broker.id
Replicas:分区副本所在的broker,指安装kafka集群时所设置的broker.id
Isr:ISR列表中的副本所在的broker(包括领导者副本),同样指安装kafka集群时所设置的broker.id


7. 创建生产者
bin/kafka-console-producer.sh --broker-list centos01:9092,centos02:9092,centos03:9092 --topic topictest

8. 创建消费者
bin/kafka-console-consumer.sh --bootstrap-server centos01:9092,centos02:9092,centos03:9092 --topic topictest

bin/kafka-console-consumer.sh --bootstrap-server centos01:9092,centos02:9092,centos03:9092 --topic test5

注意

kafka规定,同一个分区内的消息只能被同一个消费者组中的一个消费者消费。而本例中的两个消费者正是同属于一个消费者组,且主题topictest有两个分区,所以需要两个消费者才能各自按序消费。

  1. 同一个消费者组内,消费者数量不能多于分区数量,否则多出的消费者不能消费消息。
  2. 如果需要全局都按顺序消费消息,可以通过给一个主题设置一个分区的方法实现,但这也意味着一个消费者组只能有一个消费者。

kafka命令

查看kafka的所有topic

kafka-topics.sh --zookeeper centos01:2181 --list


彻底删除Kafka中的topic

1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录

2、Kafka 删除topic的命令是:

 ./bin/kafka-topics  --delete --zookeeper 【zookeeper server】  --topic 【topic name】

 如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion

 你可以通过命令:./bin/kafka-topics --zookeeper 【zookeeper server】 --list 来查看所有topic



 此时你若想真正删除它,可以如下操作:

 (1)登录zookeeper客户端:命令:./bin/zookeeper-client

 (2)找到topic所在的目录:ls /brokers/topics

 (3)找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。



另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,

如果你删除了此处的topic,那么marked for deletion 标记消失

zookeeper 的config中也有有关topic的信息: ls /config/topics/【topic name】暂时不知道有什么用

总结:

彻底删除topic:

1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录

2、如果配置了delete.topic.enable=true直接通过命令删除,如果命令删除不掉,直接通过zookeeper-client 删除掉broker下的topic即可。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值