Zookeeper集群安装部署、Kafka集群安装部署

news2024/11/17 0:05:08

目录

1.  Zookeeper简介

2.  Zookeeper安装

2.1  首先,要确保已经完成了集群化环境前置准备环节的全部内容

2.2  【node1上操作】下载Zookeeper安装包,并解压

2.3 【node1上操作】创建软链接

2.4 【node1上操作】修改配置文件

2.5 【node1上操作】配置myid

2.6 【在node2和node3上操作】,创建文件夹

2.7 【node1上操作】将Zookeeper 复制到node2和node3

2.8 【在node2上操作】

2.9 【在node3上操作】

2.10 【在node1、node2、node3上分别执行】启动Zookeeper

2.11 【在node1、node2、node3上分别执行】检查Zookeeper进程是否启动

2.12 【node1上操作】验证Zookeeper

3.  Kafka简介

4.  Kafka安装

4.1  确保已经跟随前面步骤,安装并部署了JDK和Zookeeper服务

4.2  【在node1操作】下载并上传Kafka的安装包

4.3  【在node1操作】解压

4.4  【在node1操作】修改Kafka目录内的config目录内的server.properties 文件

4.5  【在node1操作】将node1的kafka复制到node2和node3

4.6  【在node2操作】

4.7  【在node3操作】

4.8  启动kafka

4.9  验证Kafka启动

5.  测试Kafka能否正常使用

5.1  创建测试主题

5.2  运行测试,请在FinalShell中打开2个node1的终端页面


1.  Zookeeper简介

        ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

        除了为Hadoop和HBase提供协调服务外,Zookeeper也被其它许多软件采用作为其分布式状态一致性的依赖,比如Kafka,又或者一些软件项目中,也经常能见到Zookeeper作为一致性协调服务存在。

        Zookeeper不论是大数据领域亦或是其它服务器开发领域,涉及到分布式状态一致性的场景,总有它的身影存在。

2.  Zookeeper安装

Zookeeper是一款分布式的集群化软件,可以在多台服务器上部署,并协同组成分布式集群一起工作。

2.1  首先,要确保已经完成了集群化环境前置准备环节的全部内容

链接:集群化环境前置准备_时光の尘的博客-CSDN博客

2.2  【node1上操作】下载Zookeeper安装包,并解压

# 下载
wget
http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
# 确保如下目录存在,不存在就创建
mkdir -p /export/server
# 解压
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /export/server

2.3 node1上操作】创建软链接

ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper

2.4 node1上操作】修改配置文件

vim /export/server/zookeeper/conf/zoo.cfg

tickTime=2000
# zookeeper数据存储目录
dataDir=/export/server/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

2.5 node1上操作】配置myid

# 1. 创建Zookeeper的数据目录
mkdir /export/server/zookeeper/data

# 2. 创建文件,并填入1
vim /export/server/zookeeper/data/myid
# 在文件内填入1即可

2.6 【在node2node3上操作】,创建文件夹

mkdir -p /export/server

2.7 node1上操作】将Zookeeper 复制到node2node3

cd /export/server

scp -r apache-zookeeper-3.5.9 node2:`pwd`/
scp -r apache-zookeeper-3.5.9 node3:`pwd`/

2.8 【在node2上操作】

# 1. 创建软链接
ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper

# 2. 修改myid文件
vim /export/server/zookeeper/data/myid
# 修改内容为2

2.9 【在node3上操作】

# 1. 创建软链接
ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper

# 2. 修改myid文件
vim /export/server/zookeeper/data/myid
# 修改内容为3

2.10 【在node1node2node3上分别执行】启动Zookeeper

# 启动命令
/export/server/zookeeper/bin/zkServer.sh start
# 启动Zookeeper

2.11 【在node1node2node3上分别执行】检查Zookeeper进程是否启动

jps

# 结果中找到有:QuorumPeerMain 进程即可

2.12 node1上操作】验证Zookeeper

 /export/server/zookeeper/zkCli.sh

# 进入到Zookeeper控制台中后,执行
ls /

# 如无报错即配置成功
至此 Zookeeper 安装完成

3.  Kafka简介

Kafka 是一款 分布式的、去中心化的、高吞吐低延迟、订阅模式 的消息队列系统。
同RabbitMQ 一样, Kafka 也是消息队列。不过 RabbitMQ 多用于后端系统,因其更加专注于消息的延迟和容错。
Kafka 多用于大数据体系,因其更加专注于数据的吞吐能力。
Kafka 多数都是运行在分布式(集群化)模式下,所以课程将以 3 台服务器,来完成Kafka集群的安装部署。

4.  Kafka安装

4.1  确保已经跟随前面步骤,安装并部署了JDKZookeeper服务

Kafka 的运行依赖 JDK 环境和 Zookeeper 请确保已经有了 JDK 环境和Zookeeper

4.2  【在node1操作】下载并上传Kafka的安装包

# 下载安装包
wget
http: / archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz

4.3  【在node1操作】解压

mkdir -p /export/server # 此文件夹如果不存在需先
创建

# 解压
tar -zxvf kafka_2.12-2.4.1.tgz -C /export/server/

# 创建软链接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka

4.4  【在node1操作】修改Kafka目录内的config目录内的server.properties 文件

cd /export/server/kafka/config
# 指定broker的id
broker.id=1
# 指定 kafka的绑定监听的地址
listeners=PLAINTEXT: / node1:9092
# 指定Kafka数据的位置
log.dirs=/export/server/kafka/data
# 指定Zookeeper的三个节点
zookeeper.connect=node1:2181,node2:2181,node3:2181

4.5  【在node1操作】将node1kafka复制到node2node3

cd /export/server

# 复制到node2同名文件夹
scp -r kafka_2.12-2.4.1 node2:`pwd`/
# 复制到node3同名文件夹
scp -r kafka_2.12-2.4.1 node3:$PWD

4.6  【在node2操作】

# 创建软链接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka

cd /export/server/kafka/config
# 指定broker的id
broker.id=2
# 指定 kafka的绑定监听的地址
listeners=PLAINTEXT: / node2:9092
# 指定Kafka数据的位置
log.dirs=/export/server/kafka/data
# 指定Zookeeper的三个节点
zookeeper.connect=node1:2181,node2:2181,node3:2181

4.7  【在node3操作】

# 创建软链接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka

cd /export/server/kafka/config
# 指定broker的id
broker.id=3
# 指定 kafka的绑定监听的地址
listeners=PLAINTEXT: / node3:9092
# 指定Kafka数据的位置
log.dirs=/export/server/kafka/data
# 指定Zookeeper的三个节点
zookeeper.connect=node1:2181,node2:2181,node3:2181

4.8  启动kafka

# 请先确保Zookeeper已经启动了

# 方式1:【前台启动】分别在node1、2、3上执行如下语句
/export/server/kafka/bin/kafka-server-start.sh
/export/server/kafka/config/server.properties

 # 方式2:【后台启动】分别在node1、2、3上执行如下语句
nohup /export/server/kafka/bin/kafka-server-start.sh
/export/server/kafka/config/server.properties 2>&1
>> /export/server/kafka/kafka-server.log &

4.9  验证Kafka启动

# 在每一台服务器执行
jps

5.  测试Kafka能否正常使用

5.1  创建测试主题

# 在node1执行,创建一个主题
/export/server/kafka_2.12-2.4.1/bin/kafka-topics.sh create --zookeeper node1:2181 
--replication-factor 1 --partitions 3 --topic test

5.2  运行测试,请在FinalShell中打开2node1的终端页面

# 打开一个终端页面,启动一个模拟的数据生产者
/export/server/kafka_2.12-2.4.1/bin/kafka-console--producer.sh --broker-list node1:9092 
--topic test
# 再打开一个新的终端页面,在启动一个模拟的数据消费者
/export/server/kafka_2.12-2.4.1/bin/kafka-console--consumer.sh --bootstrap-server node1:9092 --topic test --from-beginning

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

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

相关文章

Python Django 详解(基础)

文章目录 1 概述1.1 安装 django1.2 创建 django 项目1.3 创建 app 2 启动 Django2.1 settings.py:注册 app2.2 view.py:URL和视图对应2.3 启动 Django2.4 访问 3 快速上手3.1 templates:html 模板3.2 static:静态文件3.3 模板语法…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(一)

思维导图 一、作用域 1.1 局部作用域 let和const声明的才有块作用域 1.2 全局作用域 1.3 作用域链 1.4 JS垃圾回收机制 1.5 闭包 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Comp…

Qt元对象系统 day5

Qt元对象系统 day5 内存管理 QObject以对象树的形式组织起来&#xff0c;当为一个对象创建子对象时&#xff0c;子对象回自动添加到父对象的children()列表中。父对象拥有子对象所有权&#xff0c;比如父对象可以在自己的析构函数中删除它的孩子对象。使用findChild()或findC…

怎么压缩ppt文件?

怎么压缩ppt文件&#xff1f;造成ppt文件体积太大的原因主要有两个&#xff1a;① 图片和媒体文件&#xff0c;PPT中使用高分辨率、大尺寸的图片或视频文件会增加文件大小。如果未经压缩或优化&#xff0c;这些文件可能会占用较大的存储空间&#xff1b;② 动画和特效&#xff…

【Unity3D编辑器开发】Unity3D中制作一个可以随时查看键盘对应KeyCode值面板,方便开发

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中&#xff0c;会遇到要使用监控键盘输入的KeyCode值来执…

十七、C语言内存函数

1 memcpy函数的使用和模拟实现 //memcpy函数的声明 void* memcpy(void* destination, const void* source, size_t num);memcpy函数可以给内存进行拷贝&#xff0c;由于不知道要拷贝的内存中存放的是哪一种类型的数据&#xff0c;所以memcpy函数的返回类型设置成了void*。 me…

【2023全网最全最火】Selenium WebDriver教程(建议收藏)

在本教程中&#xff0c;我将向您介绍 Selenium Webdriver&#xff0c;它是当今市场上使用最广泛的自动化测试框架。它是开源的&#xff0c;可与所有著名的编程语言&#xff08;如Java、Python、C&#xff03;、Ruby、Perl等&#xff09;一起使用&#xff0c;以实现浏览器活动的…

如何使用jest

最近在研究单元测试&#xff0c;虽说前端如果不是大且的项目不必要加&#xff0c;但至少得会&#xff0c;因此花了些时间研究&#xff0c;以下是我总结jest的使用。 jest是什么&#xff1f; Jest是 Facebook 的一套开源的 JavaScript 测试框架&#xff0c; 它自动集成了断言、…

bert入门

bert是什么 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是一种自然语言处理&#xff08;NLP&#xff09;中的预训练模型&#xff0c;它是基于Transformer架构的一种深度学习模型。BERT的主要目标是在大规模文本语料库上进行预训练&a…

自动求导,计算图示意图及pytorch实现

pytorch实现 x1 torch.tensor(3.0, requires_gradTrue) y1 torch.tensor(2.0, requires_gradTrue) a x1 ** 2 b 3 * a c b * y1 c.backward() print(x1.grad) print(y1.grad) print(x1.grad 6 * x1 * y1) print(y1.grad 3 * (x1 ** 2))输出为&#xff1a; tensor(36.) …

uniapp-vue3-弹出选择组件wo-pop-selector

wo-pop-selector弹出选择组件采用uniapp-vue3实现, 支持H5、微信小程序&#xff08;其他小程序未测试过&#xff0c;可自行尝试&#xff09; 可到插件市场下载尝试&#xff1a; https://ext.dcloud.net.cn/plugin?id14879 使用示例 <template><view><view c…

GBU808-ASEMI小功率开关电源GBU808

编辑&#xff1a;ll GBU808-ASEMI小功率开关电源GBU808 型号&#xff1a;GBU808 品牌&#xff1a;ASEMI 芯片个数&#xff1a;4 封装&#xff1a;GBU-4 恢复时间&#xff1a;&#xff1e;50ns 工作温度&#xff1a;-55C~150C 浪涌电流&#xff1a;200A 正向电流&#…

微信小程序报错request:fail -2:net::ERR_FAILED(生成中间证书)

微信小程序报错request:fail -2:net::ERR_FAILED-生成中间证书 前言一、检查网站ssl证书二、生成证书方法1.获取中间证书手动合并1.进入网站&#xff1a;[https://www.myssl.cn/tools/downloadchain.html](https://www.myssl.cn/tools/downloadchain.html)2.点击下一步3.手动合…

【Vue面试题十四】、说说你对vue的mixin的理解,有什么应用场景?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说说你对vue的mixin的理…

abap代码优化和性能调优工具

select/end select与loop类似是循环&#xff08;一个是对数据库表&#xff0c;一个是对内表&#xff09; select *效率低于select 字段1 字段2... select 主键1 主键2 主键3 非主键4效率高于select 主键1 主键2 非主键4. into table 内表效率高于into corresponding fields …

Linux动态链接库.so文件

一、动态库和静态库的区别 库是一个二进制文件&#xff0c;包含的代码可以被程序调用&#xff0c;如标准库、线程库。Windows 和 Linux下的库文件格式不兼容。 Windows环境&#xff1a;静态库是 .lib 文件&#xff0c;共享库是 .dll 文件 Linux环境&#xff1a;静态库是 .a 文…

IC工程师职场必备《经典Verilog100多个代码案例》(附下载)

对于IC行业的人员而言&#xff0c;Verilog是最基础的入门&#xff0c;用于数字电路的系统设计&#xff0c;很多的岗位都会用到&#xff0c;可对算法级、门级、开关级等多种抽象设计层次进行建模。 Verilog由于其简单的语法&#xff0c;和C语言的相似性&#xff0c;目前被各大公…

uni-app:js时间与时间戳之间的转换

运行结果 代码 <template><view></view> </template><script>export default {data() {return {}},onLoad() {//时间转换为时间戳&#xff08;十位时间戳即秒级时间戳&#xff09;const time 2023-10-01 12:34:56; // 时间格式为年-月-日 时:分…

BlowFish加解密原理与代码实现

BlowFish加解密原理与代码实现 一丶简介 ​ BlowFish 是一个对称加密的加密算法。由Bruce Schneier&#xff0c;1993年设计的。是一个免费自由使用的加密算法。 了解的必要知识 BlowFish是一个对称区块加密算法。每次加密数据为 64位 &#xff08;2个int)类型数据大小。八个…

Maven 引入外部依赖

如果我们需要引入第三方库文件到项目&#xff0c;该怎么操作呢&#xff1f; pom.xml 的 dependencies 列表列出了我们的项目需要构建的所有外部依赖项。 要添加依赖项&#xff0c;我们一般是先在 src 文件夹下添加 lib 文件夹&#xff0c;然后将你工程需要的 jar 文件复制到 …