kafka安装


系统: CentOS Linux 7 (Core) x86_64

一、JDK安装

1.安装准备

# 查看系统jdk版本
java -version
# 检查jdk自带安装包
rpm -qa | grep java
# 卸载jdk
yum -y remove tzdata-java.noarch
# 如果有就卸载,卸载的包名通过(rpm -qa | grep java)获取,包名要全部输入
rpm -e --nodeps #这里输入要卸载的包#

安装

# 查看云端目前支持安装的jdk版本,两种查询方式
yum search java|grep jdk
yum -y list java*

# 选择要安装的版本,这里安装jdk11
yum install -y java-11-openjdk.x86_64 

# 搜索java文件,查找jdk安装目录
find / -name 'java'

二、zookeeper安装

kafka 1.0.1及以上版本会自带zookeeper

1.单机安装

1.下载链接
http://archive.apache.org/dist/zookeeper/
2.上传到指定主机

tar zxvf apache-zookeeper-3.6.0-bin.tar.gz -C /opt/
mv /opt/apache-zookeeper-3.6.0-bin/ /opt/zookeeper

3.在/opt/zookeeper/ 目录下创建数据文件目录和日志文件目录

mkdir /opt/zookeeper/zkData
mkdir /opt/zookeeper/zkLog

4.修改配置文件

# 复制一份配置文件并修改
cd /opt/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# 修改如下内容
dataDir=/opt/zookeeper/zkData
dataLogDir=/opt/zookeeper/zkLog

5.测试安装

cd /opt/zookeeper/bin/
# 启动zookeeper
./zkServer.sh start
# 查看进程是否启动
jps
# 查看状态
./zkServer.sh status
# 停止zookeeper
./zkServer.sh stop

2.集群安装

1.规划

主机名      ip地址
server1    192.168.7.11/24
server2    192.168.7.12/24
server3    192.168.7.13/24

2.向 /etc/hosts文件中添加如下内容

192.168.7.11 server1
192.168.7.12 server2
192.168.7.13 server3

第一步:三台主机分别按照上面 2.2 步骤正确安装zookeeper

第二步:配置服务器编号
server1:

echo 1 > /opt/zookeeper/zkData/myid

server2和server3同理,将1改为2和3即可

配置zoo.cfg文件

分别向三台主机的zoo.cfg文件中添加如下内容

vi /opt/zookeeper/conf/zoo.cfg
# 添加如下内容
server.1=192.168.7.11:2888:3888
server.2=192.168.7.12:2888:3888
server.3=192.168.7.13:2888:3888

配置参数解读 server.A=B:C:D
A:一个数字表示第几号服务器,myid 文件中的值就是A的值
B:服务器ip地址
C:集群中与leader服务器交换信息的端口
D:选举时专用端口;万一集群中的leader挂了,需要一个端口用来重新选举

分别启动三台主机的zookeeper,并查看状态

cd /opt/zookeeper/bin/
# 启动zookeeper
./zkServer.sh start
# 查看进程是否启动
jps
# 查看状态
./zkServer.sh status

3.错误解决

用zkServer.sh status后看到的错误

Error contacting service. It is probably not running

修改conf/zoo.cfg文件,添加admin.serverPort=没被占用的端口号

三、kafka安装

下载地址: http://kafka.apache.org/downloads

1.单机安装

1.解压到指定目录 /opt/kafka

tar -xvf kafka_2.12-2.2.0.tar -C /opt
mv /opt/kafka_2.12-2.2.0 /opt/kafka

2.修改核心配置文件 /opt/kafka/config/server.properties
修改如下6处:

  • ​​broker.id​​ 配置的是集群环境,要求每台kafka都有唯一的brokerid

  • log.dirs​​ 数据存放的目录

  • zookeeper.connect​​ zookeeper连接池地址信息

  • ​​delete.topic.enable​​ 是否直接删除topic

  • host.name​​ 主机名称

  • 修改:​​listeners=PLATNTEXT://server1:9092​​

vi /opt/kafka/config/server.properties
# 修改以下内容
broker.id=1
listeners=PLAINTEXT://server1:9092
log.dirs=/opt/kafka/data
zookeeper.connect=server1:2181,server2:2181,server3:2181
# 文件尾部添加以下内容
delete.topic.enable=true
host.name=server1
# 创建数据存放目录
mkdir -p /opt/kafka/data
mkdir -p /opt/kafka/zkData
mkdir -p /opt/kafka/zkLog

vi /opt/kafka/config/zookeeper.properties
# 先注释掉上面的dataDir,再在尾部添加
dataDir=/opt/kafka/zkData
dataLogDir=/opt/kafka/zkLog
admin.serverPort=9001

3.测试安装

cd /opt/kafka/bin
# 先启动zookeeper
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties 

# 再启动kafka
./kafka-server-start.sh -daemon ../config/server.properties 
jps
./kafka-server-stop.sh

2.集群安装

1.分别将server1的 /opt/kafka 目录分发给server2和server3

cd /opt
scp -r kafka/ server2:$PWD
scp -r kafka/ server2:$PWD

2.server2与server3修改配置文件 ​​server.properties​​

server2

vi /opt/kafka/config/server.properties
# 修改以下内容
broker.id=2
listeners=PLAINTEXT://server2:9092
host.name=server2

server3

vi /opt/kafka/config/server.properties
# 修改以下内容
broker.id=3
listeners=PLAINTEXT://server3:9092
host.name=server3

3.分别启动三台主机的kafka

cd /opt/kafka/bin
./kafka-server-start.sh -daemon ../config/server.properties 
jps

4.测试结果
登录zookeeper客户端,查看/brokers/ids

cd /opt/zookeeper/bin/
zkCli.sh
# 查询结果如下:
[zk: localhost:2181(CONNECTED) 0] ls /brokers/ids
[1, 2, 3]
[zk: localhost:2181(CONNECTED) 1] quit

posted @ 2022-10-29 14:39  journeyerxxx  阅读(1694)  评论(0编辑  收藏  举报
返回顶部