kafka常用运维命令

Kafka常用运维命令

启动
kafka启动之前需要先启动zookeeper,如果没有安装zookeeper 可使用kafka自带zookeeper启动

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

bin/kafka-server-start.sh config/server.properties 

正常启动所有信息会打印在控制台,关闭控制台会结束kafka程序,可用后台启动命令

bin/kafka-server-start.sh -daemon config/server.properties 或者
bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 & (&1是一个整体,代表引用标准输出文件描述符,后面一个&代表后台运行)

关闭
bin/zookeeper-server-stop.sh 

bin/kafka-server-stop.sh

或者 ps -ef | grep kafka 查出kafka进程的pid 然后 kill -9 kafka进程id

创建和列出topic
创建topic
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic mytest

--bootstrap-server  指定kafka服务ip和端口
--replication-factor 指定备份副本数
--partitions 指定topic分区数
--topic  指定topic名

列出topic
bin/kafka-topics.sh --list --bootstrap-server localhost:9092 

发送消息和接受消息
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytest
this is a message
this is another message

>bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytest --from-beginning

kafka设置多broker模式
在单台机器上启动多个kafka进程模拟多机环境 

1 复制server.properties文件
> cp config/server.properties config/server-1.properties
> cp config/server.properties config/server-2.properties

2 分别修改server.properties文件 内容如下
config/server-1.properties:
    broker.id=1
    listeners=PLAINTEXT://:9093
    log.dirs=/tmp/kafka-logs-1
 
config/server-2.properties:
    broker.id=2
    listeners=PLAINTEXT://:9094
    log.dirs=/tmp/kafka-logs-2

3 启动其他2个kafka进程(加上之前启动kafka进程,现在本机上有3个运行的kafka进程)
> bin/kafka-server-start.sh config/server-1.properties &
...
> bin/kafka-server-start.sh config/server-2.properties &
...

4 创建一个3备份的topic
> bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 1 --topic my-replicated-topic

5 查看topic的节点情况,可以使用describe命令
>bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replicated-topic

Topic:my-replicated-topic	PartitionCount:1	ReplicationFactor:3	Configs:segment.bytes=1073741824
	Topic: my-replicated-topic	Partition: 0	Leader: 2	Replicas: 2,1,0	Isr: 2,1,0

第一行是所有分区的摘要信息,每个附加行代表一个分区的相关信息,我们这里只有一个分区所以只有一个附加行
Leader 代表读写节点的编号
Replicas 代表备份节点的编号
Isr 代表需要同步节点的编号

向新主题发布一些消息
>bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic

my test message 1
my test message 2

消费这些消息
> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

my test message 1
my test message 2

测试一下容错新,根据前面的descibe命令 2号节点为leader节点,现在我们杀掉2号节点的进程
ps -ef | grep server-2.properties
kill -9 进程号

此时再次使用describe命令查看节点情况
>bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replicated-topic

Topic:my-replicated-topic	PartitionCount:1	ReplicationFactor:3	Configs:segment.bytes=1073741824
	Topic: my-replicated-topic	Partition: 0	Leader: 1	Replicas: 2,1,0	Isr: 1,0

此时leader节点变为1 且2号节点不再同步集中

虽然之前的接受写入的leader节点已经失效,但是现在仍然可以消费之前的数据
>bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
my test message
my another test message

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值