Linux安装Kafka及其环境配置

这篇具有很好参考价值的文章主要介绍了Linux安装Kafka及其环境配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录


Linux服务器环境部署专栏目录(点击进入…)


Linux安装Kafka及其环境配置

在Kafka集群(Cluster)中,一个Kafka节点就是一个Broker,消息由Topic来承载,可以存储在1个或多个Partition中。发布消息的应用为Producer、消费消息的应用为Consumer,多个Consumer可以促成Consumer Group共同消费一个Topic中的消息

概念/对象 说明
Broker Kafka节点
Leader 用来处理消息的接受和消费等请求,也就是说producer是将消息push到leader,而consumer也是从leader上去poll消息
Follower 主要用于备份消息数据,一个leader会有多个follower
Topic 主题,用于承载消息
Partition 分区,用于主题分片存储
Consumer 消费者,从主题订阅消息的应用
Consumer Group 消费者组,由多个消费者组成

linux安装kafka,服务器环境部署,kafka,linux,java

注意:由于kafka依赖zookeeper因此需要安装zookeeper,而kafka是基于scala语言编写,scala又是基于jdk的,因此需要安装jdk


(1)解压Kafka安装包

tar -zxvf kafka_2.12-3.2.3.tgz

(2)配置环境变量

export KAFKA_HOME=/home/environment/kafka_2.12-3.2.3
export PATH=$KAFKA_HOME/bin:$PATH

使配置生效:source /etc/profile


(3)修改配置文件

配置文件 说明
/config/server.properties 修改zookeeper.connect集群地址
/config/zookeeper.properties Kafka所管理的单机zookeeper(不使用)

(4)修改broker.id(集群每台机器不能一样)

配置 说明
broker.id 每台机器不能一样
zookeeper.connect 因为实验环境中有3台zookeeper服务器,所以在这里zookeeper.connect设置为3台,必须全部加进去
listeners Socket服务器侦听的地址,在配置集群的时候必须设置

(5)启动Kafka服务

命令 说明
./bin/kafka-server-start.sh -daemon ./config/server.properties 启动
./bin/kafka-server-stop.sh 停止

启动Kafka自带的Zookeeper文章来源地址https://www.toymoban.com/news/detail-684958.html

#启动Zookeeper
./zookeeper-server-start.sh ../config/zookeeper.properties
#查看日志
/var/tmp/kafka/zk.log 2>&1 & 
#查看启动成功 
jps

(6)开放端口与防火墙

#开启防火墙
systemctl start firewalld

#开启2181(zk,如果需要向外连接zk则需要)
firewall-cmd --zone=public --add-port=2181/tcp --permanent 

#开启开启9092(kafka)
firewall-cmd --zone=public --add-port=9092/tcp --permanent

#重启防火墙
firewall-cmd --reload

#查看已经开放的端口 
firewall-cmd --list-ports

#查看是否开启成功
firewall-cmd --list-ports

server.properties配置文件详细说明

# 此配置文件用于基于ZK的模式,其中需要Apache ZooKeeper。请参阅kafka.server。KafkaConfig了解更多详细信息和默认值

############################# Server Basics #############################

# broker id。对于每个代理,必须将其设置为唯一的整数
broker.id=0

############################# Socket Server Settings #############################

# 套接字服务器侦听的地址。如果未配置,主机名将等于java.net.InetAddress.getCanonicalHostName() 和 端口 9092
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
# 不能设置0.0.0.0
listeners=PLAINTEXT://node1:9092

# 监听器名称、主机名和代理将向客户端播发的端口。如果未设置,则使用“listeners”的值
# 比如Kafka集群内部通讯走内网,而对外提供服务的是公网或者隔离网络,则需要配置advertised.listeners
#advertised.listeners=PLAINTEXT://your.host.name:9092
#advertised.listeners=PLAINTEXT://0.0.0.0:9092

# 将侦听器名称映射到安全协议,默认情况下它们是相同的
#listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

# 服务器用于从网络接收请求并向网络发送响应的线程数
num.network.threads=3

# 服务器用于处理请求的线程数,其中可能包括磁盘I/O
num.io.threads=8

# 套接字服务器使用的发送缓冲区(SO_SNDBUF)
socket.send.buffer.bytes=102400

# 套接字服务器使用的接收缓冲区(SO_RCVBUF)
socket.receive.buffer.bytes=102400

# 套接字服务器将接受的最大请求大小(防止OOM)
socket.request.max.bytes=104857600


############################# Log Basics #############################

# 存储日志文件的目录的逗号分隔列表
log.dirs=/data/kafka/logs

# 每个主题的默认日志分区数。更多的分区允许使用更大的并行性,但这也会导致跨代理的文件更多
num.partitions=1

# 每个数据目录在启动和关闭时用于日志恢复的线程数。对于数据目录位于RAID阵列中的安装,建议增加此值
num.recovery.threads.per.data.dir=1



############################# Internal Topic Settings  #############################

# 组元数据内部主题“__consumer_offsets”和“__transaction_state”的复制因子对于开发测试以外的任何内容,建议使用大于1的值以确保可用性,例如3
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1

############################# Log Flush Policy #############################

# 消息会立即写入文件系统,但默认情况下,仅使用fsync()延迟同步操作系统缓存。

# 以下配置控制数据到磁盘的刷新
# 这里的几个重要的权衡:
# 		1.持久性(Durability):如果不使用复制,未刷新的数据可能会丢失。
# 		2.延迟(Latency):当刷新发生时,非常大的刷新间隔可能会导致延迟峰值,因为要刷新的数据很多。
# 		3.吞吐量(Throughput):刷新通常是最昂贵的操作,较小的刷新间隔可能导致过度查找

# 下面的设置允许用户配置刷新策略,以便在一段时间后或每隔N条消息(或两者)刷新数据。这可以在全局范围内完成,并基于每个主题进行覆盖.

# 强制将数据刷新到磁盘之前要接受的消息数
#log.flush.interval.messages=10000

# 在强制刷新之前,消息可以在日志中停留的最长时间
#log.flush.interval.ms=1000

############################# Log Retention Policy #############################

# 以下配置控制日志段的处理。可以将策略设置为在一段时间后或在累积给定大小后删除段。只要满足这些条件中的*任一*,就会删除一个段。删除总是从日志末尾开始.

# 日志保留时间
log.retention.hours=168

# 日志的基于大小的保留策略。除非剩余的段低于log.retention.bytes,否则会从日志中删除段。功能独立于log.retention.hours.
#log.retention.bytes=1073741824

# 日志段文件的最大大小。当达到此大小时,将创建一个新的日志段 默认1024MB
log.segment.bytes=1073741824

# 检查日志段以查看是否可以根据保留策略删除它们的时间间隔
log.retention.check.interval.ms=300000



############################# Zookeeper #############################

# Zookeeper连接字符串(有关详细信息,请参阅动物园管理员文档)。这是一个逗号分隔的主机:端口对,每个主机对应一个zk服务器
# Zookeeper. 案例. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# 还可以将可选的chroot字符串附加到url,以指定所有kafka znode的根目录.
#zookeeper.connect=localhost:2181
zookeeper.connect=node1:2181,node2:2181,node3:2181

# 连接到zookeeper超时(毫秒)
zookeeper.connection.timeout.ms=18000


############################# Group Coordinator Settings #############################

# 以下配置指定GroupCoordinator将延迟初始消费者重新平衡的时间(毫秒)。
# 重新平衡将因group.initial.rebalance.delay的值而进一步延迟。ms作为新成员加入组,最大为max.poll.interval.ms。默认值为3秒
# 在这里将其覆盖为0,因为它可以为开发和测试提供更好的开箱即用体验。然而,在生产环境中,默认值3秒更合适,因为这将有助于避免在应用程序启动期间进行不必要且可能代价高昂的重新平衡
group.initial.rebalance.delay.ms=0

zookeeper.properties配置详细说明

# kakfa管理的zookeeper(使用自己的集群)

# 存储快照的目录
#dataDir=/tmp/zookeeper
dataDir=/data/zookeeper/zkdata
# 客户端将连接的端口
clientPort=2181
# 禁用每个ip的连接数限制,因为这是非生产配置
maxClientCnxns=0
# 默认情况下禁用admin server以避免端口冲突。默认false 如果选择启用此选项,请将端口设置为非冲突端口
admin.enableServer=true
admin.serverPort=8010

到了这里,关于Linux安装Kafka及其环境配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Linux安装Flink及其环境配置

    Linux服务器环境部署专栏目录(点击进入…) 使用StandAlone模式,需要启动Flink的主节点JobManager以及从节点TaskManager 服务 node1 node2 node3 JobManager 是 否 否 TaskManager 是 是 是 Flink 的部署模式分为3种: (1)Application模式 (2)Per-Job模式 (3)Session模式 每个 JobManager 的可用内存值(

    2024年02月10日
    浏览(9)
  • kafka各种环境安装(window,linux,docker,k8s),包含KRaft模式

    kafka各种环境安装(window,linux,docker,k8s),包含KRaft模式

    1、 本次实验,采用kafka版本为 3.4.0 2、我们首先需要了解一下,一个 Kafka 集群是由下列几种类型的节点构成的,它们充当着不同的作用: Broker 节点 :即 代理节点 ,是 Kafka 中的工作节点,充当消息队列的角色, 负责储存和处理消息 ,每个 Broker 都是一个独立的 Kafka 服务器

    2024年02月10日
    浏览(10)
  • linux服务器安装python环境配置

    linux服务器安装python环境配置

    跳板机是一个可以从公共网络访问的服务器,它允许用户通过 SSH 连接进入私有网络中的其他服务器。如上图所示通过跳板机可以连接上7个私有的服务器 当你连接到跳板机时,你可以使用 SSH 隧道或代理来访问私有网络中的其他服务器。当你使用 SSH 隧道或代理时,你实际上

    2024年02月06日
    浏览(357)
  • linux安装搭建配置docker,mysql,nacos,redis哨兵集群,kafka,elasticsearch,kibana,IK分词器,安装Rabbitmq,安装并配置maven

    linux安装搭建配置docker,mysql,nacos,redis哨兵集群,kafka,elasticsearch,kibana,IK分词器,安装Rabbitmq,安装并配置maven

    目录 搭建docker 1.2安装yum工具  1.3更新阿里镜像源 1.4下载docker 1.5关闭防火墙 1.6启动docker 1.7查看docker版本 1.8配置阿里云镜像 1.8.1 创建文件夹 1.8.2在文件夹内新建一个daemon.json文件 1.8.3重载文件 1.9重启docker 2安装MySQL 3安装nacos 3.1拉取nacos镜像并启动 3.2启动nacos命令 3.3命令敲完

    2024年02月03日
    浏览(16)
  • 部署Kafka+ZK及其日志采集实战(系统版本:linux_CentOs_7.8)

    部署ZK 部署Kafka 采用Slf4j采集日志(lombok) 需求 控制台输出访问日志,方便测试 业务数据实际输出到kafka 常用的框架 log4j、logback、self4j等 log4j、logback、self4j 之间有啥关系 SLF4J(Simple logging Facade for Java) 门面设计模式 |外观设计模式 把不同的日志系统的实现进行了具体的抽象

    2024年02月12日
    浏览(10)
  • 【Linux环境配置】EPYC7642双路服务器Ubuntu22.04安装配置纪要

    服务器核心配置为: 双路 EPYC7642 服务器, 显卡 GeForce RTX 3060 , HDMI输出, 千兆网卡x2 …; 补充采购配件: USB/TypeC转千兆网卡(用于笔记本和服务器直连办公), DVI公 to HDMI母转接头(适配老款显示器), VGA公对公显示线, HDMI音频分离器, HDMI线x2, USB转3.5mm外置声卡, 腾

    2024年01月22日
    浏览(151)
  • 【Kafka】Kafka安装:Linux本地和Docker

    【Kafka】Kafka安装:Linux本地和Docker

    1、上传jdk-8u261-linux-x64.rpm到服务器并安装: 2、配置环境变量: 1、上传zookeeper-3.4.14.tar.gz到服务器 2、解压到/opt: 3、修改Zookeeper保存数据的目录,dataDir: 4、编辑/etc/profile: 设置环境变量ZOO_LOG_DIR,指定Zookeeper保存日志的位置; ZOOKEEPER_PREFIX指向Zookeeper的解压目录; 将Zook

    2024年02月22日
    浏览(8)
  • 【Kafka】Linux本地和Docker安装Kafka

    【Kafka】Linux本地和Docker安装Kafka

    1、上传jdk-8u261-linux-x64.rpm到服务器并安装: 2、配置环境变量: 1、上传zookeeper-3.4.14.tar.gz到服务器 2、解压到/opt: 3、修改Zookeeper保存数据的目录,dataDir: 4、编辑/etc/profile: 设置环境变量ZOO_LOG_DIR,指定Zookeeper保存日志的位置; ZOOKEEPER_PREFIX指向Zookeeper的解压目录; 将Zook

    2024年01月21日
    浏览(34)
  • Linux 安装 Apache Kafka

    Linux 安装 Apache Kafka

    下载kafka,下载地址,只是使用的话下载 Binary 版本就行。 解压 -C : 指定解压目录 需要安装并且启动 Zookeeper 进入Kafka目录,启动kafka,启动后日志参考下图 停止kafka 如果你以后台方式启动 Kafka,并且在启动时使用了 nohup : 使用 ps 命令查找 Kafka 进程的 PID: ps aux | grep kafka 使

    2024年01月17日
    浏览(11)
  • Linux实战——Kafka集群安装部署

    Kafka是一款 分布式的、去中心化的、高吞吐低延迟、订阅模式 的消息队列系统。 同RabbitMQ一样,Kafka也是消息队列。不过RabbitMQ多用于后端系统,因其更加专注于消息的延迟和容错。 Kafka多用于大数据体系,因其更加专注于数据的吞吐能力。 Kafka多数都是运行在分布式(集群

    2023年04月09日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包