框架学习-- Kafka3.2.1命令及不使用Zookeeper启动

Posted 上岸撒尿的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了框架学习-- Kafka3.2.1命令及不使用Zookeeper启动相关的知识,希望对你有一定的参考价值。

文章目录

昨天历经万难终于装好了单机的Kafka3.2.1并且使用自带的zookeeper启动了。

Kafka下,/bin目录中有许多基本命令(涉及较难的zookeeper安全等暂时不了解)
学习一下:

一、启动

1、启动自带的Zookeeper

zookeeper-server-start.sh

命令:

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

官网上的命令没有 & ,如果不加,按下ctrl+c这个进程就没了。
加上这个后台运行,就算ctrl+c也不会结束这个进程。

2、启动Kafka

kafka-server-start.sh
命令:

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

使用jps命令可以看到ZookeeperKafka都成功启动了。

二、Topic操作

1、创建一个topic

bin/kafka-topics.sh --create --topic topic_test --bootstrap-server master:9092



创建成功。

topic相关命令基本都是这样的格式:

  • bin/kafka-topics.sh topic命令
  • --create --topic 创建topic
  • topic_test 要创建的topic名称.
  • --bootstrap-server + broker主机名称:Kafka端口号

关于Kafka和Zookeeper端口号

这里要解释一下:

  • server.properties文件里,zookeeper.connect配置的是各个机器的IP地址及它们的zookeeper端口号
  • Kafka当前broker的端口号配置:
    模板为:

advertised.listeners=PLAINTEXT://your.host.name:9092

举例:

advertised.listeners=PLAINTEXT://master:9092


另外有关listeneradvertised.listeners还需要进一步了解。
可自行百度。

2、查看broker下指定的Topic信息

bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server master:9092

执行结果:
可以看到,输出这个

3、写入topic

bin/kafka-console-producer.sh --topic topic_test --bootstrap-server master:9092

执行

随便输入,回车就能发送。

4、查看topic事件

bin/kafka-console-consumer.sh --topic topic_test --from-beginning --bootstrap-server master:9092


说明刚才的写入成功了。
(提示:--前面的空格千万不能少,不然就不能消费到数据了)

5、查看topic列表

bin/kafka-topics.sh --list --bootstrap-server master:9092

6、关闭自带的Zookeeper

zookeeper-server-stop.sh

bin/zookeeper-server-stop.sh 

7、关闭Kafka

bin/kafka-server-stop.sh

还有消费者组之类的有时间学习之后,再补充记录吧……

三、不使用Zookeeper启动Kafka

不使用Zookeeper启动Kafka,配置文件则是放在了config/kraft文件夹下:

1、修改配置文件

node.id=0
controller.quorum.voters=0@mster:9093

另外里面还需要更改日志文件路径,我在kraft下新建了一个:

然后:

log.dirs=/home/software/kafka/config/kraft/kraft-logs

listeners=PLAINTEXT://master:9092,CONTROLLER://master:9093

advertised.listeners=PLAINTEXT://master:9092

其它的基本不用动。

2、格式化目录生成文件

kafka目录下执行命令:

bin/kafka-storage.sh random-uuid

为当前节点生成唯一的一个id

执行格式化命令:

bin/kafka-storage.sh format -t 0wkP3X0tSfqUg0g4a08SnQ -c /home/software/kafka/config/kraft/server.properties

上面这个命令里:

-t 后面是刚才生成的一串字符
-c 后面是kraftserver.properties的绝对路径

执行完毕就能看到我指定的日志文件夹下,多了一个meta.properties
里面的内容就是我们刚才配置的和生成的。

3、启动Kafka

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

(在不使用Zookeeper的前提下,加上&保证它后台运行)


启动成功,突然发现可视化工具是一定要指定zookeeper的,淦!
用命令查看却发现,提示没有数据,并没有说没有这个topic

用命令重新对这个topic发送消息:

再次查看:

只有这些消息?是因为启动方式改变会使数据丢失吗?
当前只有一个broker,一个消费者。

考虑到接下来要写代码,为了方便调试,在主机使用可视化工具更方便。

我还是选择配合zookeeper使用。

以上是关于框架学习-- Kafka3.2.1命令及不使用Zookeeper启动的主要内容,如果未能解决你的问题,请参考以下文章

描述Linux shell中单引号,双引号及不加引号的简单区别(计时2分钟)

Oracle RMAN 备份及不完全恢复(删除archievelog)

Linux正则表达式中单引号双引号及不加引号的区别

mysql 索引长度解释及不使用索引的一种特殊情况

hive中多行合并一行concat_ws(去重及不去重)

Apache日志切割及不记录指定类型日志