console.log(🐂🍺);|

我係死肥宅

园龄:4年11个月粉丝:19关注:3

Kafka 快速入门

2.1 安装部署

2.1.1 集群规划

hadoop101 hadoop102 hadoop103
zk zk zk
kafka kafka kafka

2.1.2 集群部署

0)官方下载地址:http://kafka.apache.org/downloads.html

1)解压安装包

[root@localhost software]# tar -zxvf kafka_2.13-3.1.0.tgz -C /opt/module

2)修改解压后的文件名称

[root@localhost module]# mv kafka_2.13-3.1.0/ kafka

3)进入到/opt/module/kafka 目录,修改配置文件

[root@localhost module]# cd kafka/config/
[root@localhost config]# vim server.properties 
#broker 的全局唯一编号,不能重复,只能是数字。
broker.id=0
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘 IO 的线程数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔
log.dirs=/opt/module/kafka/datas
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#每个 topic 创建时的副本数,默认时 1 个副本
offsets.topic.replication.factor=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#每个 segment 文件的大小,默认最大 1G
log.segment.bytes=1073741824
#检查过期数据的时间,默认 5 分钟检查一次是否数据过期
log.retention.check.interval.ms=300000
#配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理)
zookeeper.connect=192.168.10.102:2181,192.168.10.103:2181,192.168.10.104:2181

4)分发安装包

[root@localhost module]# xsync.sh kafka/

5)分别在 hadoop103 和 hadoop104 上修改配置文件/opt/module/kafka/config/server.properties 中的 broker.id=1、broker.id=2

注:broker.id 不得重复,整个集群中唯一。

6)配置环境变量

(1)在/etc/profile.d/my_env.sh 文件中增加 kafka 环境变量配置

[root@localhost module]# vim /etc/profile.d/my_env.sh 

增加如下内容:

#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin

(2)刷新一下环境变量。

[atguigu@localhost ~]$ source /etc/profile

(3)分发环境变量文件到其他节点,并 source。

[root@localhost module]# xsync.sh /etc/profile.d/my_env.sh 

7)启动集群

(1)先启动 Zookeeper 集群,然后启动 Kafka。

[atguigu@hadoop103 kafka]$ ./bin/kafka-server-start.sh -daemon ./config/server.properties

注意:配置文件的路径要能够到 server.properties。

8)关闭集群

[atguigu@hadoop103 kafka]$ ./bin/kafka-server-stop.sh 

2.1.3 集群启停脚本

1)在/home/atguigu/bin 目录下创建文件 kf.sh 脚本文件

[atguigu@hadoop102 bin]$ vim kf.sh

脚本如下:

#!/usr/bin/env bash

case $1 in
"start") {
    for i in hadoop102 hadoop103 hadoop104; do
        echo " --------启动 $i Kafka-------"
        ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
    done
} ;;
"stop") {
    for i in hadoop102 hadoop103 hadoop104; do
        echo " --------停止 $i Kafka-------"
        ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh "
    done
} ;;
esac

2)添加执行权限

[atguigu@hadoop102 bin]$ chmod +x kf.sh

3)启动集群命令

[atguigu@hadoop102 scripts]$ ./kf.sh start

4)停止集群命令

[atguigu@hadoop102 scripts]$ ./xcall.sh

注意:停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper 集群。因为 Zookeeper 集群当中记录着 Kafka 集群相关信息,Zookeeper 集群一旦先停止, Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 Kafka 进程了。

2.2 Kafka 命令行操作

2.2.1 主题命令行操作

1)查看操作主题命令参数

[atguigu@hadoop102 kafka]$ ./bin/kafka-topics.sh
参数 描述
--bootstrap-server 连接的 Kafka Broker 主机名称和端口号。
--topic 操作的 topic 名称。
--create 创建主题。
--delete 删除主题。
--alter 修改主题。
--list 查看所有主题。
--describe 查看主题详细描述。
--partitions 设置分区数。
--replication-factor 设置分区副本。
--config 更新系统默认的配置。

2)查看当前服务器中的所有 topic

[atguigu@hadoop103 kafka]$ ./bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list

3)创建 first topic

[atguigu@hadoop103 kafka]$ ./bin/kafka-topics.sh --bootstrap-server  hadoop102:9092 --create --partitions 1 --replication-factor 3 --topic first
Created topic first.

选项说明:

  • --topic 定义 topic 名
  • --replication-factor 定义副本数
  • --partitions 定义分区数

4)查看 first 主题的详情

[atguigu@hadoop103 kafka]$ ./bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --describe
Topic: first	TopicId: pLpCz_JgRdeXqkZemImP1g	PartitionCount: 1	ReplicationFactor: 3	Configs: segment.bytes=1073741824
	Topic: first	Partition: 0	Leader: 1	Replicas: 1,0,2	Isr: 1,0,2

5)修改分区数(注意:分区数只能增加,不能减少)

[atguigu@hadoop103 kafka]$ ./bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic first --partitions 3

6)再次查看 first 主题的详情

[atguigu@hadoop102 kafka]$ ./bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --describe
Topic: first	TopicId: pLpCz_JgRdeXqkZemImP1g	PartitionCount: 3	ReplicationFactor: 3	Configs: segment.bytes=1073741824
	Topic: first	Partition: 0	Leader: 1	Replicas: 1,0,2	Isr: 1,0,2
	Topic: first	Partition: 1	Leader: 2	Replicas: 2,1,0	Isr: 2,1,0
	Topic: first	Partition: 2	Leader: 0	Replicas: 0,2,1	Isr: 0,2,1

7)删除 topic(学生自己演示)

[atguigu@hadoop102 kafka]$ ./bin/kafka-topics.sh --bootstrap-server  hadoop102:9092 --delete --topic first

2.2.2 生产者命令行操作

1)查看操作生产者命令参数

[atguigu@hadoop102 kafka]$ ./bin/kafka-console-producer.sh 
参数 描述
--bootstrap-server 连接的 Kafka Broker 主机名称和端口号。
--topic 操作的 topic 名称。

2)发送消息

[atguigu@hadoop102 kafka]$ ./bin/kafka-console-producer.sh --bootstrap-server hadoop102:9092 --topic first
>hello world
>atguigu atguigu

2.2.3 消费者命令行操作

1)查看操作消费者命令参数

[atguigu@hadoop103 kafka]$ ./bin/kafka-console-consumer.sh 
参数 描述
--bootstrap-server 连接的 Kafka Broker 主机名称和端口号。
--topic 操作的 topic 名称。
--from-beginning 从头开始消费。
--group 指定消费者组名称。

2)消费消息

[atguigu@hadoop103 kafka]$ ./bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first
atguigu
hello

(2)把主题中所有的数据都读取出来(包括历史数据)。

[atguigu@hadoop103 kafka]$ ./bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first --from-beginning
hello world
atguigu atguigu
atguigu
hello

本文作者:我係死肥宅

本文链接:https://www.cnblogs.com/iamfatotaku/p/16209589.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   我係死肥宅  阅读(317)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.