Kafka 2.4.1 环境搭建

博文目录


Kafka需要JDK环境

Linux Oracle JDK 下载 安装 配置 使用

Kafka需要Zookeeper缓存存储各种元数据, 单机模式或集群模式都支持

Zookeeper 下载安装 单机 集群

Kafka从2.5.0开始不再支持Scala 2.11, 我们下载支持Scala2.11的最后一个版本 kafka_2.11-2.4.1.tgz

Kafka官网下载
Kafka 2.4.1 下载页面

注意

Kafka原生即为集群架构, 即使启动单个节点, 也是一个单节点的集群, 同样有leader等, 就是它自己. Kafka集群是无状态的, 其将brokers数据存在zookeeper中, 多个broker的互相发现也是通过zookeeper, 所以kafka很容易扩容添加broker, 只需要zookeeper地址配置一样的值, 然后启动就可以了

下载安装

# 2.11是scala的版本,2.4.1是kafka的版本
wget https://mirrors.bfsu.edu.cn/apache/kafka/2.4.1/kafka_2.11-2.4.1.tgz
tar -xzf kafka_2.11-2.4.1.tgz
mv kafka_2.11-2.4.1 kafka-2.11-2.4.1
cd kafka-2.11-2.4.1
mkdir mrathena

配置

我个人习惯将各种数据日志的配置到独立的文件夹mrathena下

cp config/server.properties mrathena/kafka.config.9092
vim kafka.config.9092
# 在kafka集群中必须唯一
broker.id=0
# 部署的机器内网ip和提供服务的端口号
listeners=PLAINTEXT://172.16.138.202:9092
# 数据存储目录
log.dirs=/application/kafka-2.11-2.4.1/mrathena/kafka.data.9092
# zookeeper地址, 支持集群, 如:localhost:2181,localhost:2182
# 默认使用zookeeper的 / 目录, 导致在zookeeper搞的很乱, 可以在后面写 /kafka 来指定根目录
zookeeper.connect=localhost:2181/kafka

启动

kafka-server-start.sh [-daemon] server.properties, server.properties 的配置路径是一个强制的参数,-daemon 表示以后台进程运行,否则ssh客户端退出后,就会停止服务。(注意,在启动kafka时会使用linux主机名关联的ip地址,所以需要把主机名和linux的ip映射配置到本地host里,用vim /etc/hosts)

../bin/kafka-server-start.sh -daemon kafka.config.9092
# 或者 bin/kafka-server-start.sh config/server.properties &

启动kafka失败(可以从logs/kafkaServer.out里查看启动日志), 原因是启动要申请1G内存, 我这边1c2g的配置, 没有这么大的内存了, 测试使用也没必要这么大, 所以调整一下

vim kafka-server-start.sh
# 调整 KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 为 KAFKA_HEAP_OPTS="-Xmx256m -Xms256m"

进入zookeeper查看节点数据

# 我们进入zookeeper目录通过zookeeper客户端查看下zookeeper的目录树
bin/zkCli.sh
# 查看zk的根目录kafka相关节点
ls /
# 查看kafka节点, broker只有一个 0
ls /kafka/brokers/ids

停止kafka

../bin/kafka-server-stop.sh

配置文件 server.properties 核心配置详解

PropertyDefaultDescription
broker.id0每个broker都可以用一个唯一的非负整数id进行标识;这个id可以作为broker的“名字”,你可以选择任意你喜欢的数字作为id,只要id是唯一的即可。
log.dirs/tmp/kafka-logskafka存放数据的路径。这个路径并不是唯一的,可以是多个,路径之间只需要使用逗号分隔即可;每当创建新partition时,都会选择在包含最少partitions的路径下进行。
listenersPLAINTEXT://192.168.65.60:9092server接受客户端连接的端口,ip配置kafka本机ip即可
zookeeper.connectlocalhost:2181zooKeeper连接字符串的格式为:hostname:port,此处hostname和port分别是ZooKeeper集群中某个节点的host和port;zookeeper如果是集群,连接方式为 hostname1:port1, hostname2:port2, hostname3:port3
log.retention.hours168每个日志文件删除之前保存的时间。默认数据保存时间对所有topic都一样。
num.partitions1创建topic的默认分区数
default.replication.factor1自动创建topic的默认副本数量(master和follower都叫副本),建议设置为大于等于2
min.insync.replicas1当producer设置acks为-1时,min.insync.replicas指定replicas的最小数目(必须确认每一个repica的写数据都是成功的),如果这个数目没有达到,producer发送消息会产生异常
delete.topic.enabletrue是否允许删除主题

集群增加 broker

对于kafka来说,一个单独的broker意味着kafka集群中只有一个节点。要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可。

拷贝两个虚拟机, 修改 servier.properties 的 broker.id 和 listeners 的 ip 地址, 注意 broker.id 不能重复, 确保 zookeeper.connect 的配置一模一样, 然后全部启动

查看zookeeper

[zk: localhost:2181(CONNECTED) 21] ls /kafka/brokers/ids
[0, 1, 2]

集群环境ok

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka 2.4.1是Apache Kafka的一个版本,它提供了一套API,为开发者提供了各种功能和工具,用于构建和管理Kafka集群以及处理数据流。 Kafka的API包括: 1. Producer API:用于向Kafka发送消息,将数据发送到Kafka集群的topic中。开发者可以通过API设置消息的键和值,以及指定使用的分区。 2. Consumer API:用于从Kafka读取消息,从指定的topic中消费数据。开发者可以通过API指定要消费的topic和分区,并处理从Kafka读取的消息。 3. Streams API:用于构建实时流处理应用程序,将数据流转换为处理和分析的结果。开发者可以使用Streams API来处理输入流并生成输出流,同时进行聚合、过滤、转换等操作。 4. Connect API:用于将Kafka与其他数据存储系统和源集成。开发者可以使用Connect API来编写连接器,将Kafka与外部系统集成,以实现数据的传输和同步。 5. Admin API:用于管理Kafka集群,包括创建和删除topics、分区的增删改查、配置的管理等操作。开发者可以使用Admin API进行集群管理和监控。 除此之外,Kafka提供了一些辅助工具和功能,用于简化和增强开发和管理体验。例如,Kafka提供了一个命令行工具kafka-console-consumer和kafka-console-producer,用于在命令行界面上进行消费和生产消息。Kafka还提供了一些监控工具,如Kafka Monitor和Kafka Manager,用于实时监控集群的状态和性能。 总之,Kafka 2.4.1的API提供了丰富的功能,使开发者能够方便地处理和管理数据流,构建可扩展和高性能的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值