kafka安装配置

上传解压步骤省略
进入到kafka解压目录下的Config文件夹
修改配置文件:server.properties

vim server.properties

要点:

  1. broker.id=0 // 此设置在master主机不必更改,但此值是唯一值,slave1和slave2中要该为1和2
    其次该值可以改为1 对应的slave1和slave2为2、3,亦可以是2、3、4,只要不一样就可以
  2. delete.topic.enable=true该配置在2.X版本可能没有在Server.properties配置文件中没有写出,此配置为可以删除tipic,在1.X版本中为注释不生效状态,2.X版本中没有该项设置,可以添加。
  3. listeners=PLAINTEXT://:9092该配置为注释不生效状态,2.X版本请打开该选项,否则无法与其他两台从机中的kafka连接,该端口为监听端口。
  4. log.dirs=/usr/apps/tmp/kafka/logs该设置是已修改后的路径,默认应该在/tmp/kafka-logs文件夹中,该配置设置Kafka暂存文件或信息的位置,并不是log日志文件,因为Kafka生成的文件后缀名就是.log格式。
  5. zookeeper.connect=master:2181,slave1:2181,slave2:2181后面的:2181可以写,也可以不写,因为已经在/etc/hosts文件中配置了,Kafka会自主绑定端口
    该文件夹下的zookeeper.properties中的dataDir=路径可以更改也可以不更改。

因为Kafka是以zookeeper为基础,所以要先启动zookeeper:

/usr/apps/kafka_2.11-2.0.0/bin/zookeeper-server-start.sh -deamon /usr/apps/kafka_2.11-2.0.0/config/zookeeper.properties

本文章中用到的为Kafka自带的zookeeper

说明:

  1. zookeeper启动文件:zookeeper-server-start.sh
  2. -daemon:守护进程模式,也就是后台启动,如果不后台启动,则会是一个阻塞线程,即打开后就停在那里,不能关闭窗口,若关闭窗口则关闭进程【服务】
  3. zookeeper.properties配置文件

合并解释:启动zookeeper进程,后台启动,使用该配置启动

启动Kafka:

/usr/apps/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon /usr/apps/kafka_2.11-2.0.0/config/server.properties

具体说明请以上方的说明为例

2021年11月8日更新

Kafka配置安装【内置zookeeper】

  • Kafka机制
• Kafka将消息以topic为单位进行归纳。
• 将向Kafka topic发布消息的程序成为producers.
• 将预订topics并消费消息的程序成为consumer.
• Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.
producers通过网络将消息发送到Kafka集群,集群向消费者提供消息,如下图所示

Kafka机制图

环境准备

  • Kafka版本:kafka_2.11-2.0.0.tgz
  • 三台主机:master、slave1、slave2【已在/etc/profile中作IP映射】

安裝配置工作

  1. Kafka解压安装
[root@master ~]# tar -zxf /usr/tar/kafka_2.11-2.0.0.tgz -C /usr/apps/
  1. 新建kafka的日志目录和zookeeper数据目录

这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失,所以需要自定义目录

# 递归创建
[root@master ~]# mdkir -p /usr/apps/kafka_2.11-2.0.0/zkdata
[root@master ~]# mdkir -p /usr/apps/kafka_2.11-2.0.0/kfkdata
[root@master ~]# mdkir -p /usr/apps/kafka_2.11-2.0.0/log/zklog
[root@master ~]# mdkir -p /usr/apps/kafka_2.11-2.0.0/log/kafka

配置zookeeper

在master中进行操作,配置完毕分发给两台机器

  • 进到Kafkaconfig目录
[root@master kafka_2.11-2.0.0]# cd config/
  • 编辑zookeeper.properties文件
vim zookeeper.properties
  • 内容如下
dataDir=/usr/apps/kafka_2.11-2.0.0/zkdata
dataLogDir=/usr/apps/kafka_2.11-2.0.0/log/zklog
# the port at which the clients will connect
# 端口号
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
# 最大连接数
# maxClientCnxns=0
# zookeeper的基本单元时间,毫秒
tickTime=2000
# Leader-Follower初始通信时限 tickTime*10
initLimit=10
# Leader-Follower同步通信时限 tickTime*5
syncLimit=5
# 设置broker ID的服务地址
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
  • zookeeper数据目录添加myid配置

进入到目录:/usr/apps/kafka_2.11-2.0.0/zkdata

cd /usr/apps/kafka_2.11-2.0.0/zkdata
# 创建并写入myid值
echo 1 > myid
# master的myid的值为1,slave1的myid的值为2,slave2的myid的值为3
# 要和上方的server.1的1保持对应

Kafka配置

  • 进入到config目录【命令省略】
  • 编辑配置文件server.properties
[root@master config]# vim server.properties

三台服务器都要配置,其中的broker.idlisteners不一样,其他配置都一样

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

# The id of the broker. This must be set to a unique integer for each broker.
# # broker 的全局唯一编号,不能重复
broker.id=0
############################# Socket Server Settings #############################

# The address the socket server listens on. It will get the value returned from 
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
# 配置监听,修改为本机ip
listeners=PLAINTEXT://master:9092
# broker的主机地址,若是设置了,那么会绑定到这个地址上,若是没有,会绑定到所有的接口上,并将其中之一发送到ZK,一般不设置
host.name=本机IP
# 处理网络请求的线程数量,默认
num.network.threads=3

# 用来处理磁盘IO的线程数量,默认,理论上说应该大于你的磁盘数,此处保持默认
num.io.threads=8

# 发送套接字的缓冲区大小,默认
socket.send.buffer.bytes=102400

# 接收套接字的缓冲区大小,默认
socket.receive.buffer.bytes=102400

# 请求套接字的缓冲区大小,默认
socket.request.max.bytes=104857600


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

# A comma separated list of directories under which to store log files
# Kafka 运行日志【分区文件】存放路径
log.dirs=/usr/apps/kafka_2.11-2.0.0/kfkdata

# topic 在当前broker上的分片个数,与broker保持一致
num.partitions=3

# 用来恢复和清理data下数据的线程数量,默认
num.recovery.threads.per.data.dir=1

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

# 主题副本数,在非测试环境中,尽量大于1,保证可用性
offsets.topic.replication.factor=3
# 事务主题的复制因子(设置更高以确保可用性)。 内部主题创建将失败,直到群集大小满足此复制因素要求
transaction.state.log.replication.factor=3
# 覆盖事务主题的min.insync.replicas(副本写入保证)配置,在min.insync.replicas中,replicas数量为1,该参数将默认replicas定义为2
transaction.state.log.min.isr=2

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

# segment文件保留的最长时间,超时将被删除,默认
log.retention.hours=168

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

# 配置三台服务zookeeper连接地址
zookeeper.connect=master:2181,slave1:2181,slave2:2181

# Timeout in ms for connecting to zookeeper
# 连接到ZK server的超时时间,没有配置就使用 zookeeper.session.timeout.ms
zookeeper.connection.timeout.ms=6000
  • 分发给其他两台从机【scp -r 命令,此处省略】
  • 修改zookeeper的myid文件
  • 修改Kafka的broker.id
  • 修改Kafka的监听地址listeners=PLAINTEXT://本机IP或IP映射名称:9092

启动

kafka启动时先启动zookeeper,再启动kafka;关闭时相反,先关闭kafka,再关闭zookeeper

  • 进入到Kafka的bin目录
  • 启动zookeeper

因为zookeeperKafka启动时为阻塞进程,所以本篇文章使用后台守护进程-daemon启动

[root@master bin]# ./zookeeper-server-start.sh ../config/zookeeper.properties

# 后台启动命令
[root@master bin]# ./zookeeper-server-start.sh -daemon ../config/zookeeper.properties

第一台zookeeper启动后,会一直报错,不用管,这是因为第二三台的机器没有启动,zookeeper连接不到,启动三台zookeeper后就正常了
当三台zookeeper没有完全启动时,报错【拒绝连接】为正常

  • 启动Kafka
[root@master bin]# ./kafka-server-start.sh ../config/server.properties

# 后台启动命令
[root@master bin]# ./kafka-server-start.sh -daemon ../config/server.properties
  • Kafka常见错误
  1. Kafka启动后几秒后自动关闭
    原因:
  • 查看broker.id是否冲突
  • 查看监听地址是否为本机地址【例如本机为slave1,则监听地址为listeners=PLAINTEXT://slave1:9092
  • 查看zookeeper是否启动,即QuorumPeerMain进程
  • 查看防火墙是否关闭:systemctl status firewalld
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Apache Kafka 是一个分布式流处理平台,用于构建实时数据管道和消息队列系统。在 CentOS 上安装配置 Kafka 需要几个步骤,以下是基本的安装过程: 1. **安装Java**: Kafka依赖于Java,所以首先确保你的系统上安装了Java。如果没有,可以通过以下命令安装: ``` sudo yum install java-1.8.0-openjdk-devel -y ``` 2. **下载Kafka压缩包**: 从Apache官网(https://kafka.apache.org/downloads)下载适合的版本。例如,使用wget命令: ``` wget https://archive.apache.org/dist/kafka/2.9.1/kafka_2.12-2.9.1.tgz ``` 3. **解压并移动文件**: ``` tar -zxvf kafka_2.12-2.9.1.tgz sudo mv kafka_2.12-2.9.1 /opt/ ``` 4. **配置环境变量**: 将Kafka的bin目录添加到系统的PATH中: ``` echo 'export PATH=$PATH:/opt/kafka_2.12-2.9.1/bin' >> ~/.bashrc source ~/.bashrc ``` 5. **启动Zookeeper服务(可选,如果你没有安装)**: 如果集群包含Zookeeper节点,先启动它。否则略过这一步: ``` sudo systemctl start zookeeper sudo systemctl enable zookeeper ``` 6. **安装Kafka服务**: 进入Kafka目录并运行安装脚本: ``` cd /opt/kafka_2.12-2.9.1 ./bin/install.properties ``` 7. **配置Kafka**: 编辑`config/server.properties`文件以适应你的需求,比如设置监听端口、日志路径等。确保`listeners`属性配置了网络监听地址。 8. **启动Kafka服务**: ``` bin/kafka-server-start.sh config/server.properties ``` 9. **验证安装**: 使用`bin/kafka-topics.sh`命令检查是否能创建主题或查看现有主题。 10. **监控服务**: 使用`bin/kafka-control.sh`进行管理和监控。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AdminLog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值