文章目录
1:环境准备
1:jdk1.8安装
1:检查系统中是否已经安装过openjdk,如果有将其删除
rpm -qa | grep java
yum remove -y java-*
2:将jdk上传到主机,并解压缩到指定目录 /usr/local
tar zxvf jdk-11.0.12_linux-x64_bin.tar.gz -C /usr/local/
3:配置环境变量并刷新
#编辑配置文件
vi /etc/profile
#写入如下内容
export JAVA_HOME=/usr/local/jdk-11.0.12
export CLASS_PATH=.
export PATH=$JAVA_HOME/bin:$PATH
#加载配置文件
source /etc/profile.d/jdk11.sh
4:检查安装

2:配置主机名和IP映射
配置主机名和ip的映射,后边要用



3:关闭防火墙&防火墙开机自启动
注;不同的系统防火墙命令不同,以centos7为例
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
4:安装&启动Zookeeper
安装zk的文档我专门写了另一个博客:zookeeper安装和使用
2:kafka单机安装
1:下载地址
https://kafka.apache.org/downloads
2:解压
tar -zxvf kafka_2.12-3.0.0.tgz
3:修改配置
1:修改核心配置文件 /opt/kafka/config/server.properties
#broker.id属性在kafka集群中必须要是唯一
broker.id=0
#kafka部署的机器ip和提供服务的端口号
listeners=PLAINTEXT://centos:9092
#kafka的消息存储文件
log.dir=/usr/local/data/kafka-logs
#kafka连接zookeeper的地址
zookeeper.connect=centos:2181
2:注: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部署的机器ip和提供服务的端口号
listeners=PLAINTEXT://centos:9092
#外网访问---代理将向生产者和消费者通告的主机名和端口,配上这个就可以直接通过ip来进行连接
advertised.listeners=PLAINTEXT://192.168.138.128:9092
#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=hadoop102:2181,hadoop103:2181,hadoop104:2181/ka
fka
3:kafka外网访问配置方式-不配置外网调用时会提示链接超时:org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before the position for
加入我们内网的kafka 部署在192.168.1.1:9092 上,这时候我们用公网的123.2.3.4:20111 端口映射到内网192.168.1.1:20111端口上
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
listeners=INTERNAL://192.168.1.1:9092,EXTERNAL://192.168.1.1:20111
advertised.listeners=INTERNAL://192.168.1.1:9092,EXTERNAL://123.2.3.4:20111
inter.broker.listener.name=INTERNAL
4:启动kafka
在kafka根目录下:./bin/kafka-server-start.sh -daemon config/server.properties
- -daemon : #以守护进程方式启动

3:集群安装
集群安装和单机安装基本一样
1:jdk安装,这个是一样的
2:配置主机名和映射

3:关闭防火墙
这个三台分别关闭即可
4:同步时钟
因为三台机器需要同步时间,否则容易造成数据不一致

同步时钟 ntpdate cn.pool.ntp.org 或者 ntpdate ntp[1-7].aliyun.com
然后clock - w

5:配置zookeeper集群
安装zk的文档我专门写了另一个博客:zookeeper安装和使用
6:配置kafka集群
1:下载地址
https://kafka.apache.org/downloads
2:解压
tar -zxvf kafka_2.12-3.0.0.tgz
3:修改配置(跟单机区别在这里)
修改核心配置文件 /opt/kafka/config/server.properties
#broker.id属性在kafka集群中必须要是唯一
broker.id=0
#kafka部署的机器ip和提供服务的端口号
listeners=PLAINTEXT://centos:9092
#kafka的消息存储文件
log.dir=/usr/local/data/kafka-logs
#kafka连接zookeeper的地址
zookeeper.connect=centos:2181
注:集群时修改地方:
1:broker.id----比如centosA为0,centosB为1,centosC为2
2:listeners=PLAINTEXT://centos:9092 ,分别改为监控自己节点的主机和端口号
3:zookeeper集群地址用逗号分割

注: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=hadoop102:2181,hadoop103:2181,hadoop104:2181/ka
fka
4:分别启动kafka
在kafka根目录下:./bin/kafka-server-start.sh -daemon config/server.properties

7:集群创建topic
1:创建:topic01,3个分区,2个副本因子

2:查看三台服务器存储情况
在centosA即borker0节点上:

在centosB即borker1节点上:

在centosC即borker2节点上:

3:通过命令查看topic分区情况
./bin/kafka-topics.sh
--bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092
--describe
--topic topic01

如果三个节点,创建两个分区,3个副本因子,可以看到,虽然有3台broker,但是只有两台担任此topic的leader,但是三台机器上都有副本;


2297

被折叠的 条评论
为什么被折叠?



