zookeeper和kafka集群从0到1搭建(保姆教程)

news2024/9/28 13:24:03

在这里插入图片描述

一、环境准备

1、准备3台机器

主机名称 主机IP zookeeper版本 kafka版本

主机名称主机IPzookeeper版本kafka版本
worker01192.168.179.128zookeeper-3.4.14.tar.gzkafka_2.12-2.2.1.tgz
worker02192.168.179.129zookeeper-3.4.14.tar.gzkafka_2.12-2.2.1.tgz
worker03192.168.179.130zookeeper-3.4.14.tar.gzkafka_2.12-2.2.1.tgz

2、3台机器安装jdk1.8环境

3、下载kafka安装包

(此处下载,可忽略第二步:下载安装包):
kafka_2.12-2.2.1.tgz

4、下载zookeeper安装包

(此处下载,可忽略第二步:下载安装包):
zookeeper-3.4.14.tar.gz

https://download.csdn.net/download/qq_22075913/87440001

二、下载安装包(官方下载,仅供参考)

1、登录官方:https://downloads.apache.org/

三、环境配置

1、修改主机名(分别单独执行)

# 修改主机名,在worker01上执行
hostnamectl set-hostname worker01
bash # 不重启,使修改主机名生效
 
# 修改主机名,在worker02上执行
hostnamectl set-hostname worker02
bash # 不重启,使修改主机名生效
 
# 修改主机名,在worker03上执行
hostnamectl set-hostname worker03
bash # 不重启,使修改主机名生效

2、关闭防火墙

(worker01、worker02、worker03都执行)

systemctl stop firewalld

systemctl disable firewalld

systemctl status firewalld

3、配置/etc/hosts

(worker01、worker02、worker03都执行)

vi /etc/hosts
#添加worker01、worker02、worker03 ip域名配置
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.179.128 worker01
192.168.179.129 worker02
192.168.179.130 worker03

四、安装 jdk

1、查询仓库jdk软件包

(worker01、worker02、worker03都执行)

# 查询jdk软件包
yum list |grep jdk
 
# 安装系统对应版本
yum install -y java-1.8.0-openjdk-devel.x86_64
 
# 查看jdk是否配置生效
java -version
 
# 后续可以用jps查看,主机启动的所有java进程
jps

在这里插入图片描述

五、安装zookeeper集群

1、解压目录

(worker01、worker02、worker03,都要执行)

mkdir -p /home/kafka-zookeeper
cd /home/kafka-zookeeper

# 上传安装包

# 解压
tar -xf zookeeper-3.4.14.tar.gz

[root@worker01 kafka-zookeeper]# ls
zookeeper-3.4.14  zookeeper-3.4.14.tar.gz

2、修改配置文件

(worker01、worker02、worker03,都执行)

# 创建目录
mkdir -p /home/kafka-zookeeper/zookeeper-3.4.14/data
mkdir -p /home/kafka-zookeeper/zookeeper-3.4.14/logs
# 修改配置文件名
cd /home/kafka-zookeeper/zookeeper-3.4.14/conf
mv zoo_sample.cfg zoo.cfg

3、修改配置文件

(worker01、worker02、worker03,都要执行)

vi zoo.cfg
 
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/kafka-zookeeper/zookeeper-3.4.14/data
dataLogDir=/home/kafka-zookeeper/zookeeper-3.4.14/logs
clientPort=2181
server.1=192.168.179.128:2888:3888
server.2=192.168.179.129:2888:3888
server.3=192.168.179.130:2888:3888

4、创建myid

 # 在 worker01、worker02、worker03 上都执行
cd /home/kafka-zookeeper/zookeeper-3.4.14/data

# 在 worker01、worker02、worker03 上都执行
touch myid
 
# 只在 192.168.179.128 worker01 上执行
echo 1 > /home/kafka-zookeeper/zookeeper-3.4.14/data/myid
 
# 只在192.168.179.129 worker02 上执行
echo 2 > /home/kafka-zookeeper/zookeeper-3.4.14/data/myid
 
# 只在192.168.179.130 worker03 上执行
echo 3 > /home/kafka-zookeeper/zookeeper-3.4.14/data/myid

5、zookeeper启动、停止

# zookeeper 启动
/home/kafka-zookeeper/zookeeper-3.4.14/bin/zkServer.sh start
 
# zookeeper 停止
/home/kafka-zookeeper/zookeeper-3.4.14/bin/zkServer.sh stop
 
# zookeeper 查看状态
/home/kafka-zookeeper/zookeeper-3.4.14/bin/zkServer.sh status
 
# 3台机器的状态
mode:follower    # 从
mode:leader      # 主
mode:follower    # 从
 
# 运行客户端(后面介绍kafka注册)
/home/kafaka-zookeeper/apache-zookeeper-3.6.3/bin/zkCli.sh -server worker0x的IP:2181

3. 查看zookeeper启动状态

3台主机,需要全部执行启动命令,查看zookeeper启动状态,如果正常选主,就启动成功了;反之,失败,需要检查日志 dataLogDir=/home/kafka-zookeeper/zookeeper-3.4.14/logs。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

六、安装kafka集群

1、解压目录(worker01、worker02、worker03,都要执行)

# 拷贝安装包
cp kafka_2.12-2.2.1.tgz /home/kafka-zookeeper/

# 进入目录
cd /home/kafka-zookeeper/

#解压安装包kafka_2.12-2.2.1.tgz
tar -xf kafka_2.12-2.2.1.tgz

2、修改配置

(worker01、worker02、worker03,都要执行)

# 创建目录
mkdir -p /home/kafka-zookeeper/kafka_2.12-2.2.1/data
mkdir -p /home/kafka-zookeeper/kafka_2.12-2.2.1/logs
# 进入kafka_2.12-2.2.1的配置文件目录
cd /home/kafka-zookeeper/kafka_2.12-2.2.1/config
 
# 备份配置文件
cp server.properties server.properties.bak
 
# 删除注释行
sed -i "/#/d" server.properties
vi server.properties
 
# worker01 192.168.179.128 配置文件修改
broker.id=1
listeners=PLAINTEXT://192.168.179.128:9092
log.dirs=/home/kafka-zookeeper/kafka_2.12-2.2.1/logs
num.partitions=3
zookeeper.connect=192.168.179.128:2181,192.168.179.129:2181,192.168.179.130:2181
zookeeper.connection.timeout.ms=18000

# 其它2台配置
 
# worker02 192.168.179.129 配置文件修改
broker.id=2
listeners=PLAINTEXT://192.168.179.129:9092
log.dirs=/home/kafka-zookeeper/kafka_2.12-2.2.1/logs
num.partitions=3
zookeeper.connect=192.168.179.128:2181,192.168.179.129:2181,192.168.179.130:2181
zookeeper.connection.timeout.ms=18000
 
# worker03 192.168.179.130 配置文件修改
broker.id=3
listeners=PLAINTEXT://192.168.179.130:9092
log.dirs=/home/kafka-zookeeper/kafka_2.12-2.2.1/logs
num.partitions=3
zookeeper.connect=192.168.179.128:2181,192.168.179.129:2181,192.168.179.130:2181
zookeeper.connection.timeout.ms=18000
 

3、启动kafka集群

(worker01、worker02、worker03,都要执行)

systemctl stop firewalld
/home/kafka-zookeeper/kafka_2.12-2.2.1/bin/kafka-server-start.sh /home/kafka-zookeeper/kafka_2.12-2.2.1/config/server.properties

4、验证kafka集群

cd /home/kafka-zookeeper/kafka_2.12-2.2.1/bin

# 创建 kafka topic
./kafka-topics.sh --create --bootstrap-server 192.168.179.128:9092,192.168.179.129:9092,192.168.179.130:9092 --replication-factor 3 --partitions 3 --topic haha

# 列出所有的topic
./kafka-topics.sh --list --bootstrap-server 192.168.179.128:9092

在这里插入图片描述

# 在worker01 192.168.179.128 上发布消息
cd /home/kafka-zookeeper/kafka_2.12-2.2.1/bin/
./kafka-console-producer.sh --broker-list 192.168.179.128:9092 --topic haha
>我过的挺好
>zoo
 
 
#  在worker02 192.168.179.129 上消费
cd /home/kafka-zookeeper/kafka_2.12-2.2.1/bin/
./kafka-console-consumer.sh --bootstrap-server 192.168.179.129:9092 --topic haha --from-beginning
我过的挺好
zoo
 
 
#  在worker02 192.168.179.130 上消费
cd /home/kafka-zookeeper/kafka_2.12-2.2.1/bin/
./kafka-console-consumer.sh --bootstrap-server 192.168.179.130:9092 --topic haha --from-beginning
我过的挺好
zoo

5、验证zookeeper集群

cd /home/kafka-zookeeper/kafka_2.12-2.2.1/bin/
 
# 进入zookeeper客户端,如果是自定义端口一定要 -server 指定IP:port,否则默认进入2181端口
 
./zkCli.sh -server 192.168.179.128:2181
 
# 查看服务
WatchedEvent state:SyncConnected type:None path:null
[zk: 192.168.179.128:2181(CONNECTED) 0] ls /brokers/ids
[1, 2, 3]
[zk: 192.168.179.128:2181(CONNECTED) 1] ls /brokers/topics
[haha, __consumer_offsets]
 
 
# 进入zookeeper客户端,不是自定义
WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: 192.168.179.128:2181(CONNECTED) 3] ls /
[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
[zk: 192.168.179.128:2181(CONNECTED) 4] ls /config/brokers
[]
[zk: 192.168.179.128:2181(CONNECTED) 5] ls /config
[changes, clients, brokers, topics, users]
[zk: 192.168.179.128:2181(CONNECTED) 6] ls /config/topics
[haha, __consumer_offsets]

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/339581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Arduino IDE 2.0.6中 ESP32开发环境搭建笔记

Arduino IDE 2.0.6中 ESP32开发环境搭建 Arduino IDE2.0 已上线一段时间,以后ESP32的学习转至新的IDE中 ,需对开发环境进行。 Arduino IDE2.0与1.0有很大差异。原来环境搭建方法已完全不同。下文主要记录环…

Docker进阶 - 13. Docker 容器监控之 CAdvisor+InfluxDB+Granfana (CIG) 简介

目录 1. CIG 产生原因 2. CIG 是什么 3. CIG 详细介绍 1. CIG 产生原因 使用docker stats命令可以看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,简单的监控够用。但是docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的&am…

外包干了5年,寄了

前两天有读者想我资讯: 我是一名软件测试工程师,工作已经四年多快五年了。现在正在找工作,由于一直做的都是外包的项目。技术方面都不是很深入,现在找工作都是会问一些,测试框架,自动化测试,感…

微信公众号(二)每日推送详细教程(ChatGPT对话机器人)

微信公众号(二)每日推送详细教程(ChatGPT对话机器人)1.准备阶段1.1 基础性配置1.2 申请ChatGPT账号2. 配置阶段2.1 配置application.yml文件2.2 EnableChatGPT注解3. 部署效果图如下 1.准备阶段 1.1 基础性配置 首先下载源码…

Vue3+SpringBoot实现【登录】【毛玻璃】【渐变色】

首先创建Login.vue&#xff0c;编写界面和样式 这个是渐变色背景&#xff0c;登陆框背景为白色 <template><div class"wrapper"><div style"margin: 200px auto; background-color: #fff; width: 350px; height: 300px;padding: 20px;border-r…

hadoop高可用+mapreduce on yarn集群搭建

虚拟机安装 本次安装了四台虚拟机&#xff1a;hadoop001、hadoop002、hadoop003、hadoop004&#xff0c;安装过程略过 移除虚拟机自带jdk rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps关闭防火墙 systemctl stop firewalld systemctl disable firewalld.service给普…

MyBatis-Plus基本CRUD

MyBatis-Plus基本CRUD三、基本CRUD1、BaseMapper2、插入3、删除a>通过id删除记录b>通过id批量删除记录c>通过map条件删除记录4、通过id修改一条记录5、查询a>根据id查询用户信息b>根据多个id查询多个用户信息c>通过map条件查询用户信息d>查询所有数据6、通…

微软ATP智汇十二道场 · 探索AI 驱动转型(北京专场)

为了推动微软与苏州人工智能产业创新中心共同构建企业级AI创新生态圈&#xff0c;微软ATP定于2023年3月3日在微软亚太研发集团总部&#xff08;北京&#xff09;举办“微软ATP智汇十二道场 探索AI 驱动转型”线下活动。 ▍微软探索AI商用&#xff0c;避免“创新陷阱”ChatGPT …

Lesson 6.6 多分类评估指标的 macro 和 weighted 过程 Lesson 6.7 GridSearchCV 的进阶使用方法

文章目录一、多分类评估指标的 macro 和 weighted 过程1. 多分类 F1-Score 评估指标2. 多分类 ROC-AUC 评估指标二、借助机器学习流构建全域参数搜索空间三、优化评估指标选取1. 高级评估指标的选用方法2. 同时输入多组评估指标四、优化后建模流程在正式讨论关于网格搜索的进阶…

Element UI框架学习篇(六)

Element UI框架学习篇(六) 1 删除数据 1.1 前台核心函数 1.1.1 elementUI中的消息提示框语法 //①其中type类型和el-button中的type类型是一致的,有info灰色,success绿色,danger红色,warning黄色,primary蓝色 //②message是你所要填写的提示信息 //③建议都用,因为比双引号…

字符串装换整数(atoi)-力扣8-java

一、题目描述请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。函数 myAtoi(string s) 的算法如下&#xff1a;读入字符串并丢弃无用的前导空格检查下一个字符&#xff08;假设还未…

合宙ESP32S3-CORE开发板|保姆级|Arduino IDE|windows11|esp32S3支持库|helloword例程:Arduino 环境搭建

Arduino主页网址&#xff1a; Software | Arduino 以windows11版本为例&#xff1a; Arduino IDE最新版本为2.0.3 左边的按钮是直接下载&#xff08;免捐赠&#xff09;&#xff1a; 下载安装完成后&#xff0c;更改软件默认语言&#xff1a; 默认的库是不支持ESP32的&#…

Allegro如何更改铜皮显示密度操作指导

Allegro如何更改铜皮显示密度操作指导 用Allegro做PCB设计的时候,铜皮正常显示模式如下图 铜皮的密度是基本填充满的,Allegro支持更改铜皮的显示密度 如下图 如何更改密度,具体操作如下 点击setup

Element UI框架学习篇(七)

Element UI框架学习篇(七) 1 新增员工 1.1 前台部分 1.1.1 在vue实例的data里面准备好需要的对象以及属性 addStatus:false,//判断是否弹出新增用户弹窗dailog,为true就显示depts:[],//部门信息mgrs:[],//上级领导信息jobs:[],//工作岗位信息//新增用户所需要的对象newEmp:…

Top-1错误率、Top-5错误率等常见的模型算法评估指标解析

Top-1 错误率&#xff1a;指预测输出的概率最高的类别与人工标注的类别相符的准确率&#xff0c;就是你预测的label取最后概率向量里面最大的那一个作为预测结果&#xff0c;如过你的预测结果中概率最大的那个分类正确&#xff0c;则预测正确&#xff0c;否则预测错误。比如预测…

Zabbix 构建监控告警平台(五)

Zabbix 自动发现Zabbix 自动注册1.Zabbix 自动发现 1.1前言 为了满足监控企业成千上万台服务器&#xff0c;因此我们需要使用Zabbix批量监控来实现。自动发现和自动注册。 1.2zabbix-server &#xff08;一&#xff09;1、创建自动发现规则 在“配置”->“自动发现”->“…

Spring Boot 快速入门(绝对经典)

目录 1、理论概述 1.1、什么是Spring Boot? 1.2、Spring Boot的特点 1.3、开发环境 2、实战——创建和配置项目 2.1、Spring Boot项目创建的两种方式 2.1.1、方法一&#xff1a;通过网站构建项目 2.1.2、使用Spring Initializr创建&#xff08;推荐&#xff09; 2.2、…

10个SEO 写作的必读小技巧!包你读完写更好创作

我们都知道写作是需要技巧的&#xff0c;目的是为了让读者有兴趣阅读&#xff0c;所以标题跟内容架构都需要清晰的思路。同样的&#xff0c;撰写SEO部落格文章也需要技巧&#xff0c;但拥有的不仅是传统写文章的技巧而已&#xff0c;而需要将Google的排名因素考虑进去。换句话说…

使用VueBarcode结合vueEasyPrint打印条形码标签

目标&#xff1a; 生成标签并实现打印功能 学习步骤&#xff1a; 1、了解 VueBarcode 2、了解 VueEasyPrint 3、VueBarcode 实践 4、VueEasyPrint 实践 5、VueBarcode VueEasyPrint 合体 一、了解 VueBarcode 点击传送至官网 原文介绍&#xff1a; JsBarcode是一个用JavaScr…

电子学会2020年6月青少年软件编程(图形化)等级考试试卷(四级)答案解析

青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;四级A卷&#xff09; 分数&#xff1a;100.00 题数&#xff1a;30 一、单选题&#xff08;共15题&#xff0c;每题2分&#xff0c;共30分&#xff09; 1. 执行下图程序后&#xff0c;“花名…