博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kafka(五):Topic的增删改查操作
阅读量:4280 次
发布时间:2019-05-27

本文共 2056 字,大约阅读时间需要 6 分钟。

1.创建Topic

bin/kafka-topics.sh --create --topic bigdata --zookeeper hadoop:2181/kafka08 --partitions 5 --replication-factor 2 

其中:

(1)--replication-factor:副本数目默认不超过3,太多影响网络磁盘io性能(副本数越多,数据越安全,但是不能大于broker的数目)

(2)--partitions:一般为broker服务数目的1--2倍

2.查看当前kafka集群中Topic的情况

(1)查看Topic列表

bin/kafka-topics.sh --list --zookeeper hadoop:2181/kafka08

(2)zk查看

打开zk客户端后

ls /kafka/config/topics

(3)topic数据存储

由server.properties中log.dirs配置决定

/opt/modules/kafka_2.11-0.10.2.1/data/0

3. 查看Topic的详细信息

bin/kafka-topics.sh --describe --zookeeper hadoop:2181/kafka08

结果:

        Topic:beifeng   PartitionCount:5        ReplicationFactor:2     Configs:        Topic: beifeng  Partition: 0    Leader: 0       Replicas: 0,1   Isr: 0        Topic: beifeng  Partition: 1    Leader: 0       Replicas: 1,0   Isr: 0        Topic: beifeng  Partition: 2    Leader: 0       Replicas: 0,1   Isr: 0        Topic: beifeng  Partition: 3    Leader: 0       Replicas: 1,0   Isr: 0        Topic: beifeng  Partition: 4    Leader: 0       Replicas: 0,1   Isr: 0        Topic:beifeng0  PartitionCount:1        ReplicationFactor:1     Configs:        Topic: beifeng0 Partition: 0    Leader: 0       Replicas: 0     Isr: 0

其中Isr:当broker的leader宕机后,有机会竞选的broker的id!

4. 修改Topic信息

 bin/kafka-topics.sh --alter --topic bigdata --zookeeper hadoop:2181/kafka08 --partitions 6

注意:不能修改replication-factor,以及只能对partition个数进行增加,不能减少 

 

5. 删除Topic(简单的删除,只是标记删除)

bin/kafka-topics.sh --delete --topic bigdata--zookeeper hadoop:2181/kafka08

默认情况下,删除是标记删除,没有实际删除这个Topic。

 真实删除这个Topic的两种方式:

(1)通过delete命令删除后,手动将本地磁盘以及zk上的相关topic的信息删除即可  

ls /kafka/brokers/topics

(2)配置server.properties文件,给定参数delete.topic.enable=true,表示允许进行Topic的删除

注意:一般来说,topic创建了之后就不要随意的删除和修改信息

6.topic分区partition意义

(1)一个分区只能让(一个消费者组中)一条线程消费。(同一个分区中的数据,是不可能让两条线程同时消费的)            

(2)如果,一个topic有3个分区,但是消费者只有一个线程,则这个消费者消费这3个分区的数据。
(3)分区数和消费者线程数相等的情况下,消费的速度和性能是最好的。(如果,分区数大于线程数,则有的线程消费多个分区的数据;如果线程大于分区,部分线程占据资源不处理数据,浪费资源)
(4)如果某个topic接收的数据量很大,如何增加处理速度?        
            -》增加topic的分区数(可以直接增加,数据会重新分布(已经写入到磁盘的数据不会变动,新来数据会根据重分布后的hash码来分布到新的分区中!)
            -》增加消费者的线程(例如:spark消费程序,增加--num-exe或者exe-core)

 

转载地址:http://ntygi.baihongyu.com/

你可能感兴趣的文章
Linux消息队列通讯编程
查看>>
多进程与多线程的优缺点
查看>>
Linux多线程程序设计
查看>>
网络协议基础
查看>>
Linux网络编程模型
查看>>
TCP通讯程序设计
查看>>
UDP通讯程序设计
查看>>
并发服务器设计
查看>>
Linux守护进程设计
查看>>
应用程序的makefile编写例程
查看>>
进程的三种基本状态及其转换
查看>>
Berkeley DB数据库
查看>>
SQLite数据库编程
查看>>
sqlite基本sql语句使用
查看>>
MYSQL数据库编程
查看>>
Linux简介
查看>>
vim文本编辑器
查看>>
Linux系统安装软件
查看>>
linux在线安装软件
查看>>
gcc编译器简介
查看>>