kafka常用命令及配置参数详解

本文详细介绍了Kafka的常用命令,包括启动/停止Zookeeper和Kafka,创建/删除topic,以及生产者和消费者的使用。同时,还涵盖了Broker、Consumer和Producer的相关配置参数,为Kafka的日常管理和操作提供了全面的参考。
摘要由CSDN通过智能技术生成

kafka常用命令及配置参数详解

常用命令

1、启动zookeeper

​ bin/zookeeper-server-start.sh config/zookeeper.properties &

2、启动kafka
bin/kafka-server-start.sh config/server.properties &

3、停止kafka
bin/kafka-server-stop.sh

4、停止zookeeper
bin/zookeeper-server-stop.sh

5、创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

6、展示topic
bin/kafka-topics.sh --list --zookeeper localhost:2181

7、描述topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

8、生产者:
bin/kafka-console-producer.sh --broker-list 130.51.23.95:9092 --topic my-replicated-topic

9、消费者:
bin/kafka-console-consumer.sh --zookeeper 130.51.23.95:2181 --topic test --from-beginnin

10、删除topicbin/kafka-topics.sh --delete --zookeeper 130.51.23.95:2181 --topic topicname删除topic中存储的内容在config/server.properties中找到如下的位置

11、删除log.dirs指定的文件目录,然后重新启动就可以了

12.控制台向kafka生产数据: ./kafka-console-producer.sh --broker-list master:9092 --topic jason_20180519

13.控制台消费kafka的数据: ./kafka-console-consumer.sh --zookeeper storm1:2181 --topic jason_20180519 --from-beginning

14.查看topic下某分区偏移量的最小值: ./kafka-run-class.sh kafka.tools.GetOffsetShell --topic test-topic --time -1 --broker-list master:9092 --partitions 0

15.增加topic的partition:/kafka-topics.sh --alter --topic jason_20180519 --zookeeper 10.200.10.24:2181,10.200.10.26:2181,10.200.10.29:2181 --partitions 5

16.删除topic,慎用,只会删除zookeeper中的元数据,消息文件须手动删除: ./kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper master:2181 --topic yq20171220

17.彻底删除topic: rmr /brokers/topics/【topic name】即可

Broker Configs

Property Default Description
broker.id 每个broker都可以用一个唯一的非负整数id进行标识;这个id可以作为broker的“名字”,并且它的存在使得broker无须混淆consumers就可以迁移到不同的host/port上。你可以选择任意你喜欢的数字作为id,只要id是唯一的即可。
log.dirs /tmp/kafka-logs kafka存放数据的路径。这个路径并不是唯一的,可以是多个,路径之间只需要使用逗号分隔即可;每当创建新partition时,都会选择在包含最少partitions的路径下进行。
port 6667 server接受客户端连接的端口
zookeeper.connect null ZooKeeper连接字符串的格式为:hostname:port,此处hostname和port分别是ZooKeeper集群中某个节点的host和port;为了当某个host宕掉之后你能通过其他ZooKeeper节点进行连接,你可以按照一下方式制定多个hosts: hostname1:port1, hostname2:port2, hostname3:port3. ZooKeeper 允许你增加一个“chroot”路径,将集群中所有kafka数据存放在特定的路径下。当多个Kafka集群或者其他应用使用相同ZooKeeper集群时,可以使用这个方式设置数据存放路径。这种方式的实现可以通过这样设置连接字符串格式,如下所示: hostname1:port1,hostname2:port2,hostname3:port3/chroot/path 这样设置就将所有kafka集群数据存放在/chroot/path路径下。注意,在你启动broker之前,你必须创建这个路径,并且consumers必须使用相同的连接格式。
message.max.bytes 1000000 server可以接收的消息最大尺寸。重要的是,consumer和producer有关这个属性的设置必须同步,否则producer发布的消息对consumer来说太大。
num.network.threads 3 server用来处理网络请求的网络线程数目;一般你不需要更改这个属性。
num.io.threads 8 server用来处理请求的I/O线程的数目;这个线程数目至少要等于硬盘的个数。
background.threads 4 用于后台处理的线程数目,例如文件删除;你不需要更改这个属性。
queued.max.requests 500 在网络线程停止读取新请求之前,可以排队等待I/O线程处理的最大请求个数。
host.name null broker的hostname;如果hostname已经设置的话,broker将只会绑定到这个地址上;如果没有设置,它将绑定到所有接口,并发布一份到ZK
advertised.host.name null 如果设置,则就作为broker 的hostname发往producer、consumers以及其他brokers
advertised.port null 此端口将给与producers、consumers、以及其他brokers,它会在建立连接时用到; 它仅在实际端口和server需要绑定的端口不一样时才需要设置。
socket.send.buffer.bytes 100 * 1024 SO_SNDBUFF 缓存大小,server进行socket 连接所用
socket.receive.buffer.bytes 100 * 1024 SO_RCVBUFF缓存大小,server进行socket连接时所用
socket.request.max.bytes 100 * 1024 * 1024 server允许的最大请求尺寸; 这将避免server溢出,它应该小于Java heap size
num.partitions 1 如果创建topic时没有给出划分partitions个数,这个数字将是topic下partitions数目的默认数值。
log.segment.bytes 101410241024 topic partition的日志存放在某个目录下诸多文件中,这些文件将partition的日志切分成一段一段的;这个属性就是每个文件的最大尺寸;当尺寸达到这个数值时,就会创建新文件。此设置可以由每个topic基础设置时进行覆盖。 查看 the per-topic configuration section
log.roll.hours 24 * 7 即使文件没有到达log.segment.bytes,只要文件创建时间到达此属性,就会创建新文件。这个设置也可以有topic层面的设置进行覆盖; 查看the per-topic configuration section
log.cleanup.policy delete
log.retention.minutes和log.retention.hours 7 days 每个日志文件删除之前保存的时间。默认数据保存时间对所有topic都一样。 log.retention.minutes 和 log.retention.bytes 都是用来设置删除日志文件的,无论哪个属性已经溢出。 这个属性设置可以在topic基本设置时进行覆盖。 查看the per-topic configuration section
log.retention.bytes -1 每个topic下每个partition保存数据的总量;注意,这是每个partitions的上限,因此这个数值乘以partitions的个数就是每个topic保存的数据总量。同时注意:如果log.retention.hours和log.retention.bytes都设置了,则超过了任何一个限制都会造成删除一个段文件。 注意,这项设置可以由每个topic设置时进行覆盖。 查看the per-topic configuration
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值