JDK ZOOKEEPER KAFKA安装

[复制链接]
发表于 2025-10-17 15:12:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
JDK17下载安装






mkdir -p /usr/local/develop

cd /usr/local/develop

将下载的包上传服务器指定路径


解压文件
tar -zxvf jdk-17.0.14_linux-x64_bin.tar.gz -C /usr/local/develop/
修改文件夹名
mv /usr/local/develop/jdk-17.0.14 /usr/local/develop/java17
设置情况变量
vim /etc/profile
 
export JAVA_HOME=/usr/local/develop/17
export PATH=$JAVA_HOME/binPATH
export CLASSPATH=.JAVA_HOME/lib

生存之后让情况变量收效
source /etc/profile


KAFKA下载安装

kafka.apache.org


将下载的包放到/usr/local/develop路径下

解压
tar -xvf kafka_2.13-3.9.0.tgz -C /usr/local/develop/

Kafka 的版本定名方式 kafka_2.13-3.9.0 可以拆分成两部门:

  • 2.13:指的是 Scala 版本
  • 3.9.0:指的是 Kafka 的版本号

cd kafka_2.13-3.9.0

下令区别

在解压JDK和KAFKA时间
JDK用了tar -zxvf  而KAFKA用了 tar -xvf的缘故起因


Kafka启动方式

kafka基于Scala开发,须要Java8+情况
有两种启动方式
1种是基于zookeeper  别的一种是基于KRaft(用于代替Zookeeper)
基于ZOOKEEPER启动

(zookeeper也是java开发的)
进去kafka的bin目次
cd /usr/local/develop/kafka_2.13-3.9.0/bin
先启动zookeeper 并指定Zookeeper的设置文件  纵然不指定应该也是用的这个设置文件
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties > /usr/local/develop/zookeeper.log 2>&1 &
启动kafka
nohup ./kafka-server-start.sh ../config/server.properties > /usr/local/develop/zookeeper.log 2>&1 &
关闭kafka
./kafka-server-stop.sh
关闭zookeeper
./zookeeper-server-stop.sh
可以通过
netstat -nlpt   检察利用的端口
基于KRaft启动(无需zookeeper)

cd /usr/local/develop/kafka_2.13-3.9.0/bin
天生 Cluster UUID(集群ID)
./kafka-storage.sh random-uuid              可以多次实行  每次天生的UUID差别

格式化存储 format -t  反面是集群ID 然后指定设置
./kafka-storage.sh format -t zvalKa2rSxmM_NUp6hOxxQ -c ../config/kraft/server.properties &
启动 Kafka
nohup ./kafka-server-start.sh ../config/kraft/server.properties > /usr/local/develop/zookeeper.log 2>&1 &
关闭
./kafka-server-stop.sh
 
表明:毕竟上UUID可以随意   但是当第一次启动之后 在/tmp/kraft-combined-logs 中已经将zvalKa2rSxmM_NUp6hOxxQ集群ID写入   可以
rm -rf /tmp/kraft-combined-logs   如许的话  集群ID是123也可以启动
./kafka-storage.sh format -t 123 -c ../config/kraft/server.properties &
利用独立zookerper

kafka自带了zookerper
zookeeper下载安装

都一样  任意点击下载   大概用wget下载


cd /usr/local/develop
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.3/apache-zookeeper-3.9.3-bin.tar.gz
解压
tar -zxvf apache-zookeeper-3.9.3-bin.tar.gz -C /usr/local/develop/
cd apache-zookeeper-3.9.3-bin
设置zookeeper
cd /usr/local/develop/apache-zookeeper-3.9.3-bin/conf

cp zoo_sample.cfg zoo.cfg


启动zookeeper
./zkServer.sh start                    默认就会用zoo.cfg的设置
./zkServer.sh stop     关闭zookeeper
netstat -nlpt           检察利用的端口和pid


zookeeper会启用一个8080端口  为制止端口辩说   修改下设置

‌ZooKeeper的8080端口重要用于管理界面和REST API服务‌。ZooKeeper的默认管理端口是8080,通过这个端口可以访问ZooKeeper的管理界面和REST API,从而举行设置管理、监控监控和调试等操纵‌


kill之后重启zookeeper    大概在zookeeper的bin目次下实行   ./zkServer.sh stop
‌ZooKeeper的8080端口重要用于管理界面和REST API服务‌。ZooKeeper的默认管理端口是8080,通过这个端口可以访问ZooKeeper的管理界面和REST API,从而举行设置管理、监控监控和调试等操纵‌
不相识之前  安全组照旧关闭的好


用独立zookeeper启动kafka

先启动zookeeper
nohup/usr/local/develop/apache-zookeeper-3.9.3-bin/bin/zkServer.sh start
启动kafka
nohup /usr/local/develop/kafka_2.13-3.9.0/bin/kafka-server-start.sh /usr/local/develop/kafka_2.13-3.9.0/config/server.properties > /usr/local/develop/zookeeper.log 2>&1       反面加&  不加是前台启动

关闭kafka
/usr/local/develop/kafka_2.13-3.9.0/bin/kafka-server-start.sh
关闭zookeeper
ps -ef|grep zoo
大概
netstat -nlpt
然后kill 


通过Docker安装kafka

1.安装docker

检察是否安装过docker
yum list installed|grep docker
卸载docker
   sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  安装最新版本docker
设置docker的下载镜像  这个得当国外,国内大概有点慢
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 
国内用这个
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
上面两个下令-->向 /etc/yum.repos.d/ 目次中新增一个 .repo 设置文件,让 yum 可以大概从指定的 Docker 堆栈下载软件包。    docker-ce.repo作用是指定去那边下载镜像  镜像源设置文件
/etc/yum.repos.d

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
设置docker开机自启
sudo systemctl enable docker
设置docker镜像加快器
vim /etc/docker/daemon.json
   {
  "registry-mirrors": [
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn"
  ]
}
 
  加载设置
sudo systemctl daemon-reload
如果无法启动 设置vim /etc/docker/daemon.json的时间格式有误
sudo systemctl restart docker

systemctl status docker   检察docker状态
systemctl stop docker   克制docker

也可以利用
service docker start   启动
service docker stop   克制
service docker restart  重启

2.docker安装kafka

docker search kafka


可以检察kafka文档

也可以上docker检察

我这里就按kafka官方保举的
拉取镜像也可以直接run  没有就会主动下载
  1. docker pull apache/kafka-native:3.9.0
复制代码
默认基于KRaft启动   不须要zookeeper
  1. docker run -d --name dckafka -p 9092:9092 apache/kafka:3.9.0
复制代码
Docker设置Kafka

以上方式启动kafka的话,用于本地测试,外部无法毗连
https://hub.docker.com/r/apache/kafka
Docker容器的kafka三种设置方式,
1.就是默认设置 (因没有设置,外部无法毗连,只有本地测试可用)
2.文件输入:提供一个本地kafka属性设置文件,更换docker容器中kafka的默认设置
3.情况变量:通过-e 变量  在启动时间覆盖默认设置中的对应属性值

在kafka的docker容器内部 /etc/kafka/docker  下有个server.properties
须要将这个文件放到宿主机
mkdir -p /usr/local/develop/docker/kafka/config
cd /usr/local/develop/docker/kafka/config
cranky_beaver是我的容器名  可以用id大概容器名  将设置文件复制出来
docker cp cranky_beaver:/etc/kafka/docker/server.properties ./


创建Topic

这里暂时用传统方式启动zookeeper和kafka    用kafka自带的zookeeper
进去kafka的bin目次
cd /usr/local/develop/kafka_2.13-3.9.0/bin
先启动zookeeper
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties > /usr/local/develop/zookeeper.log 2>&1 &
启动kafka
nohup ./kafka-server-start.sh ../config/server.properties > /usr/local/develop/zookeeper.log 2>&1 &

# 1. 创建主题  --bootstrap-server localhost:9092指要毗连的kafka服务器
./kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
./kafka-topics.sh --create --topic quickstart-events2 --partitions 2 --bootstrap-server localhost:9092    指定分区数量
修改分区数量(分区数量只能加 不能减 (删了重新创建))
./kafka-topics.sh --alter --topic quickstart-events2 --partitions 5 --bootstrap-server localhost:9092
# 2. 列出全部主题
./kafka-topics.sh --list --bootstrap-server localhost:9092
# 3. 表现主题详细信息
./kafka-topics.sh --describe --topic quickstart-events2 --bootstrap-server localhost:9092
# 4. 删除主题
./kafka-topics.sh --delete --topic quickstart-events --bootstrap-server localhost:9092

Kafka和EMQX的区别


生产者斲丧者通讯(发送吸取)

示例:
创建Topic
./kafka-topics.sh --create --topic topic-0 --bootstrap-server localhost:9092
生产者发送消息
./kafka-console-producer.sh --topic topic-0 --bootstrap-server localhost:9092  回车后创建生产者的毗连通道,消息就会被发送到 Kafka topic-0 主题中。



斲丧者读消息(拉取)  --from-beginning 斲丧拉取该topic全部汗青消息 (因此每次启动都可以重复斲丧)
./kafka-console-consumer.sh --topic topic-0 --from-beginning --bootstrap-server localhost:9092
没有--from-beginning 只会斲丧(拉取)新消息 斲丧者启动之后生产者发送的消息
./kafka-console-consumer.sh --topic topic-0 --bootstrap-server localhost:9092
 
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表