启动ZooKeeper

打开一个新终端并键入以下命令

#cd /usr/local/zookeeper-3.4.13/
#bin/zkServer.sh start

关闭ZooKeeper,请键入以下命令

#cd /usr/local/zookeeper-3.4.13/
#bin/zkServer.sh stop

启动Kafka Broker,请键入以下命令

#cd /usr/local/kafka_2.11-2.1.1/

#nohup bin/kafka-server-start.sh ./config/server.properties > /dev/null 2>&1 &

关闭Kafka Broker,请键入以下命令

#cd /usr/local/kafka_2.11-2.1.1/

#bin/kafka-server-stop.sh

若是执行以上命令成功,需要更改kafka-server-stop.sh配置文件

#vim bin/kafka-server-stop.sh

PIDS=$(ps ax | grep -i 'kafka' | grep java | grep -v grep | awk '{print $1}')

将配置文件更改为以上格式,再次执行kafka-server-stop.sh就可以成功了

创建主题

创建topic名称为hello-kafka,3个副本,6个分区

--create: 指定创建topic动作

--topic:指定新建topic的名称

--zookeeper: 指定kafka连接zk的连接url,该值和server.properties文件中的配置项{zookeeper.connect}一样

--config:指定当前topic上有效的参数值,参数列表参考文档为: Topic-level configuration

--partitions:指定当前创建的kafka分区数量,默认为1个

--replication-factor:指定每个分区的复制因子个数,默认1个

#cd /usr/local/kafka_2.11-2.1.1/

#bin/kafka-topics.sh --create -zookeeper kafka01:2181 --replication-factor 3 --partitions 6 --topic hello-kafka

查看主题

查看hello-kafka主题信息,3个副本数,6个分区

--describe: 指定是展示详细信息命令

--zookeeper: 指定kafka连接zk的连接url,该值和server.properties文件中的配置项{zookeeper.connect}一样

--topic:指定需要展示数据的topic名称

#bin/kafka-topics.sh --describe -zookeeper kafka01:2181 --topic hello-kafka


查看所有主题信息

#bin/kafka-topics.sh --list --zookeeper kafka01:2181


启动生产者以发送消息

hello-kafka主题模拟发送消息

#bin/kafka-console-producer.sh --broker-list kafka01:9092 --topic hello-kafka

启动消费者以接收消息

hello-kafka主题模拟接收消息

#bin/kafka-console-consumer.sh --bootstrap-server kafka01:9092 --topic hello-kafka --from-beginning


修改主题分区数

为主题添加分区数,先创建一个topic分区数为3

#bin/kafka-topics.sh --create -zookeeper kafka01:2181 --replication-factor 3 --partitions 3 --topic bike-kafka

查看bike-kafka分区数


为bike-kafka添加分区数为6个

#bin/kafka-topics.sh --zookeeper kafka01:2181 --alter --topic bike-kafka --partitions 6

再查看bike-kafka的总共分区数

删除主题

默认情况下Kafka的Topic是没法直接删除的,需要进行相关参数配置

#bin/kafka-topics.sh --zookeeper kafka01:2181 --delete --topic hello-kafka


Note: This will have no impact if delete.topic.enable is not set to true.## 默认情况下,删除是标记删除,没有实际删除这个Topic;如果运行删除Topic,两种方式:
方式一:通过delete命令删除后,手动将本地磁盘以及zk上的相关topic的信息删除即可
方式二:配置server.properties文件,给定参数delete.topic.enable=true,重启kafka服务,此时执行delete命令表示允许进行Topic的删除