当前位置: 首页 > news >正文

JDK ZOOKEEPER KAFKA安装

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/bin:$PATH

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 可以拆分成两部分:

  1. 2.13:指的是 Scala 版本
  2. 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  没有就会自动下载

docker pull apache/kafka-native:3.9.0

先要启动zookeeper 

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/data

创建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
 


http://www.mrgr.cn/news/93464.html

相关文章:

  • Vue 系列之:组件通讯
  • 在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05
  • react中的fiber和初次渲染
  • 树莓派3B+的初步使用
  • 【VBA】WPS/PPT设置标题字体
  • Java本地缓存深度实践:框架选型与一致性保障(下)
  • 【星云 Orbit•STM32F4】13. 探索定时器:基本定时器
  • 数据库的安装(mysql)
  • Flink深入浅出之02:编程模型、数据源、算子、connector
  • 【人工智能】数据挖掘与应用题库(501-600)
  • 算法·搜索
  • Spring提供的SPEL表达式
  • 算法之 前缀和
  • vue3 组合式API:插槽
  • C++智能指针`shared_ptr`详解
  • uploadlabs通关思路
  • LeetCode 解题思路 11(Hot 100)
  • docker-compose部署mongodb副本集集群
  • AI绘画软件Stable Diffusion详解教程(7):图生图基础篇(改变图像风格)
  • Oracle SQL优化实战要点解析(11)——索引、相关子查询及NL操作(1)