Kafka集群的安装与配置(一)

apache-zookeeper-3.5.8-bin.tar.gz

jdk-8u391-linux-x64.tar.gz

kafka_2.12-3.0.0.tgz

测试服务器一核2GB

服务器 安全组开放端口9092,3888,2181,2888

一、安装JDK


JDK官网下载地址:https://www.oracle.com/java/technologies/downloads/#java18

1、在usr目录下新建Java目录,然后将下载的JDK拷贝到这个新建的Java目录中1

创建目录命令:mkdir /usr/java

2、进入到Java目录中解压下载的JDK

解压命令:tar -zxvf jdk-18_linux-x64_bin.tar.gz

在1主机上,将安装包分发到其他机器

scp -r  /opt/jdk1.8/ node2:/opt/

3、设置环境变量

设置命令:vim /etc/profile

输入上面的命令后,shift+g快速将光标定位到最后一行,然后按“i”,再输入下面代码

#set java environment
JAVA_HOME=/opt/jdk1.8
CLASSPATH=$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export PHTH JAVA_HOME CLASSPATH

#zookeeper
export ZOOKEEPER_HOME=/opt/zookeeper-3.5.8
export PATH=:$ZOOKEEPER_HOME/bin:$PATH

#KAFKA_HOME
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin

填写完代码后按ESC键,输入“:wq”保存并退出编辑页面

4、输入下面命令让设置的环境变量生效

生效命令:source /etc/profile

5、验证JDK是否安装成功java

验证命令:Java -version

二、安装Zookeeper


Zookeeper集群搭建指的是ZooKeeper分布式模式安装。通常由2n+1台server组成。这是因为为了保证Leader选举(基于Paxos算法的实现)能过得到多数的支持,所以ZooKeeper集群的数量一般为奇数。

Zookeeper运行需要java环境,所以需要提前安装jdk。对于安装leader+follower模式的集群,大致过程如下:

配置主机名称到IP地址映射配置
修改ZooKeeper配置文件
远程复制分发安装文件
设置myid
启动ZooKeeper集群
如果要想使用Observer模式,可在对应节点的配置文件添加如下配置:

peerType=observer  

其次,必须在配置文件指定哪些节点被指定为Observer,如:

server.1:node1:2181:3181:observer  

其次,必须在配置文件指定哪些节点被指定为 Observer,如:
server.1:localhost:2181:3181:observer

这里,我们安装的是leader+follower模式

服务器IP

主机名   myid的值

第一步:下载zookeeeper的压缩包,下载网址如下

Index of /dist/zookeeper

我们在这个网址下载我们使用的zk版本为3.5.8

下载完成之后,上传到我们的linux的/opt路径下准备进行安装

第二步:解压

在node1主机上,解压zookeeper的压缩包到/opt路径下去,然后准备进行安装

tar -zxvf zookeeper-3.5.8.tar.gz 

第三步:修改配置文件

在node1主机上,修改配置文件

cd /zookeeper-3.5.8/conf/

cp zoo_sample.cfg zoo.cfg

mkdir /opt/zookeeper-3.5.8/zkdatas

vim  zoo.cfg

修改以下内容

#Zookeeper的数据存放目录

dataDir=/opt/zookeeper-3.5.8/zkdatas

# 保留多少个快照

autopurge.snapRetainCount=3

# 日志多少小时清理一次

autopurge.purgeInterval=1

# 集群中服务器地址

#当前服务器的ip设置为0.0.0.0

server.1=node1:2888:3888

server.2=node2:2888:3888

server.3=node3:2888:3888

第四步:添加myid配置

在node1主机的/opt/zookeeper-3.5.8/data/这个路径下创建一个文件,文件名为myid ,文件内容为1

vim myid 

echo 1 > /opt/zookeeper/data//myid

第五步:安装包分发并修改myid的值

在node1主机上,将安装包分发到其他机器

第一台机器上面执行以下两个命令

scp -r  /opt/zookeeper-3.5.8/ node2:/opt/

scp -r  /opt/zookeeper-3.5.8/ node3:/opt/

第二台机器上修改myid的值为2

修改配置文件中的server ip,当前服务器的ip设置为0.0.0.0

echo 2 > /export/server/zookeeper-3.5.8/data/myid

第三台机器上修改myid的值为3

修改配置文件中的server ip,当前服务器的ip设置为0.0.0.0

echo 3 > /export/server/zookeeper-3.5.8/data/myid

第六步:三台机器启动zookeeper服务

三台机器分别启动zookeeper服务

这个命令三台机器都要执行

/opt/zookeeper-3.5.8/bin/zkServer.sh start

三台主机分别查看启动状态

/opt/zookeeper-3.5.8/bin/zkServer.sh  status

配置Path环境变量

1:分别在三台中,修改/etc/proflie,添加以下内容

export ZOOKEEPER_HOME=/export/server/zookeeper-3.4.6

export PATH=:$ZOOKEEPER_HOME/bin:$PATH

2:分别在三台主机中,source /etc/profile

切记:必须source,不然不生效

# 启动服务
./zkServer.sh start
 
# 查看状态
./zkServer.sh status
 
# 停止服务
./zkServer.sh stop
 
# 重启服务
./zkServer.sh restart

2.1 集群启停脚本
1 )在 /home/bin 目录下创建文件 zk .sh 脚本文件
[atguigu@hadoop102 bin]$ vim zk.sh
脚本如下:

#! /bin/bash
case $1 in
"start"){
     for i in 123.249.80.174 123.249.6.143 120.46.45.204
     do
         echo " --------启动 $i zookeeper-------"
         ssh $i "source /etc/profile && /opt/zookeeper-3.5.8/bin/zkServer.sh start"
     done
};;
"stop"){
     for i in 123.249.80.174 123.249.6.143 120.46.45.204
     do
         echo " --------停止 $i zookeeper-------"
         ssh $i "source /etc/profile && /opt/zookeeper-3.5.8/bin/zkServer.sh stop"
     done
};;
"status"){
     for i in 123.249.80.174 123.249.6.143 120.46.45.204
     do
         echo " --------查看 $i zookeeper-------"
         ssh $i "source /etc/profile && /opt/zookeeper-3.5.8/bin/zkServer.sh status"
     done
};;
esac
2 )添加执行权限
[atguigu@hadoop102 bin]$ chmod +x kf.sh
3 )启动集群命令
[atguigu@hadoop102 ~]$ kf.sh start
4 )停止集群命令
[atguigu@hadoop102 ~]$ kf.sh stop
注意:因为没有配置节点之间ssh的免登陆,所以在启动一个个节点时候,还需要手动输入密码。

三、安装Kafka


官方下载地址: http://kafka.apache.org/downloads.html
1 解压安装包
[atguigu@hadoop102 software]$ tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/
2 修改解压后的文件名称
[atguigu@hadoop102 module]$ mv kafka_2.12-3.0.0/ kafka
3 进入到 /opt/module/kafka 目录,修改配置文件
[atguigu@hadoop102 kafka]$ cd config/
[atguigu@hadoop102 config]$ vim server.properties
输入以下内容:
#broker 的全局唯一编号,不能重复,只能是数字。
broker.id=0

#例:假如服务器对外访问的ip为123.44.55.66 内网地址为10.20.30.153

listeners=PLAINTEXT://10.20.30.153:9092
advertised.listeners=PLAINTEXT://123.44.55.66:9092
原文链接:https://blog.csdn.net/weixin_44943959/article/details/123236738

# 处理网络请求的线程数量
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/kafka
4 分发安装包
[atguigu@hadoop102 module]$ scp -r  /opt/zookeeper-3.5.8/ node2:/opt/
5 分别在 hadoop103 hadoop104 上修改配置文件 /opt/module/kafka/config/server.properties
中的 broker.id=1 broker.id=2
注: broker.id 不得重复,整个集群中唯一。
[atguigu@hadoop103 module]$ vim kafka/config/server.properties
修改 :
# The id of the broker. This must be set to a unique integer for
each broker.
broker.id=1
[atguigu@hadoop104 module]$ vim kafka/config/server.properties
修改 :
# The id of the broker. This must be set to a unique integer for
each broker.
broker.id=2
6 配置环境变量
1 )在 /etc/profile.d/my_env.sh 文件中增加 kafka 环境变量配置
[atguigu@hadoop102 module]$ sudo vim /etc/profile
增加如下内容:
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
2 )刷新一下环境变量。
[atguigu@hadoop102 module]$ source /etc/profile
3 )分发环境变量文件到其他节点,并 source
[atguigu@hadoop102 module]$ sudo /home/atguigu/bin/xsync /etc/profile.d/my_env.sh
[atguigu@hadoop103 module]$ source /etc/profile
[atguigu@hadoop104 module]$ source /etc/profile
7 启动集群
1 )先启动 Zookeeper 集群,然后启动 Kafka
[atguigu@hadoop102 kafka]$ zk.sh start
2 )依次在 hadoop102 hadoop103 hadoop104 节点上启动 Kafka
[atguigu@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
[atguigu@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
[atguigu@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
注意:配置文件的路径要能够到 server.properties
8 关闭集群
[atguigu@hadoop102 kafka]$ bin/kafka-server-stop.sh
[atguigu@hadoop103 kafka]$ bin/kafka-server-stop.sh
[atguigu@hadoop104 kafka]$ bin/kafka-server-stop.sh

通过jps命令查看运行的情况

您可以使用以下步骤重启kafka:

1. 停止kafka服务:使用以下命令停止kafka服务:


bin/kafka-server-stop.sh

2. 如果kafka服务没有停止,则使用以下命令终止进程:


kill -9 `ps ax | grep -i 'kafka' | grep -v grep | awk '{print $1}'`

3. 启动kafka服务:使用以下命令启动kafka服务:

四。主题命令行操作
查看当前服务器中的所有 topic

bin/kafka-topics.sh --bootstrap-server 123.44.55.66:9092 --list

创建 first topic
bin/kafka-topics.sh --bootstrap-server 123.44.55.66:9092 --create --partitions 1 --replication-factor 3 --topic first

查看 first 主题的详情

bin/kafka-topics.sh --bootstrap-server 123.44.55.66:9092 --describe --topic first

修改分区数(注意:分区数只能增加,不能减少)
bin/kafka-topics.sh --bootstrap-server 123.44.55.66:9092 --alter --topic first --partitions 3

再次查看 first 主题的详情

bin/kafka-console-producer.sh --bootstrap-server 123.44.55.66:9092 --topic first

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值