kafka 基本的操作和管理

基本的操作和管理
## 列出所有主题
kafka-topics.bat --zookeeper localhost:2181 --list
## 列出所有主题的详细信息
kafka-topics.bat --zookeeper localhost:2181 --describe
 
## 创建主题 主题名 my-topic 1 副本, 8 分区
kafka-topics.bat --zookeeper localhost:2181 --create --topic my-topic --replication-factor 1 --partitions 8
 
## 增加分区,注意:分区无法被删除
kafka-topics.bat --zookeeper localhost:2181 --alter --topic my-topic --partitions 16 ## 删除主题
 
bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic hello-topic-12 --partitions 3  
 
kafka-topics.bat --zookeeper localhost:2181 --delete --topic my-topic
## 创建生产者(控制台)
kafka-console-producer.bat --broker-list localhost:9092 --topic my-topic
## 创建消费者(控制台)
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic my-topic --from-beginning
## 列出消费者群组(仅 Linux
kafka-topics.sh --new-consumer --bootstrap-server localhost:9092 --list
## 列出消费者群组详细信息(仅 Linux
kafka-topics.sh --new-consumer --bootstrap-server localhost:9092 --describe --group 群组名
 
Broker 配置
配置文件放在 Kafka 目录下的 config 目录中,主要是 server.properties 文件
 
常规配置
broker.id
在单机时无需修改,但在集群下部署时往往需要修改。它是个每一个 broker 在集群中的唯一表示,要求是正数。当该服务器的 IP 地址发生改变时,
broker.id 没有变化,则不会影响 consumers 的消息情况
listeners
监听列表 ( 以逗号分隔 不同的协议 ( plaintext,trace,ssl 、不同的 IP 和端口 )),hostname 如果设置为 0.0.0.0 则绑定所有的网卡地址;如果 hostname 为空
则绑定默认的网卡。如果
没有配置则默认为 java.net.InetAddress.getCanonicalHostName()
 
 
如: PLAINTEXT://myhost:9092,TRACE://:9091 PLAINTEXT://0.0.0.0:9092,
zookeeper.connect
zookeeper 集群的地址,可以是多个,多个之间用逗号分割。(一组 hostname:port/path 列表 ,hostname zk 的机器名或 IP port zk 的端口、 /path
是可选 zk 的路径,如果不指定,默认使用根路径)
log.dirs
Kafka 把所有的消息都保存在磁盘上,存放这些数据的目录通过 log.dirs 指定。可以使用多路径,使用逗号分隔。如果是多路径, Kafka 会根据“最少
使用”原则,把同一个分区的日志片段保存到同一路径下。会往拥有最少数据分区的路径新增分区。
num.recovery.threads.per.data.dir
每数据目录用于日志恢复启动和关闭时的线程数量。因为这些线程只是服务器启动(正常启动和崩溃后重启)和关闭时会用到。所以完全可以设置
大量的线程来达到并行操作的目的。注意,这个参数指的是每个日志目录的线程数,比如本参数设置为 8 ,而 log.dirs 设置为了三个路径,则总共会启动
24 个线程。
auto.create.topics.enable
是否允许自动创建主题。如果设为 true ,那么 produce (生产者往主题写消息), consume (消费者从主题读消息)或者 fetch metadata (任意客户端
向主题发送元数据请求时)一个不存在的主题时,就会自动创建。缺省为 true
主题配置
新建主题的默认参数
num.partitions
每个新建主题的分区个数(分区个数只能增加,不能减少 )。这个参数一般要评估,比如,每秒钟要写入和读取 1000M 数据,如果现在每个消费者
每秒钟可以处理 50MB 的数据,那么需要 20 个分区,这样就可以让 20 个消费者同时读取这些分区,从而达到设计目标。(一般经验,把分区大小限制在
25G 之内比较理想)
 
如何删除kafka的主题
 

新版kafka的consumer由kafka自己管理,因此在删除topic时,只需要处理跟topic相关的节点。

0、前置条件:server.properties设置 delete.topic.enable=true

1、如果需要被删除topic 此时正在被程序 produce和consume,则这些生产和消费程序需要停止。

2、使用kafka/bin目录下的命令行工具预删除:

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

这一步执行完之后,节点被标记为删除,并没有物理删除。

3、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/data/kafka-logs")相关topic的数据目录。

4、 删除zookeeper里的topic信息:

bin/zkCli.sh -server 【zookeeper server:port】

登录到zk shell,然后找到topic所在的目录:ls /brokers/topics,找到要删除的topic,然后执行命令:

rmr /brokers/topics/【topic name】

rmr /admin/delete_topics/【topic name】

5、重启zk和kafka

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值