centos7.2系统部署ZooKeeper集群和Kafka集群(集群应用系统商城前置环境)

本次实验将使用centos7.2系统部署部署ZooKeeper集群因为Kafka依赖于ZooKeeper,所以我们一并进行部署。

实验所示的资源软件已上传至百度网盘,需要自取。

链接:https://pan.baidu.com/s/1a-7_iAIX0DBAMkF9bhiTcA?pwd=2333 
提取码:2333 
复制这段内容后打开百度网盘手机App,操作更方便哦。

ip网段规划如下:

IP

主机名

节点

172.16.51.23

zookeeper1

集群节点

172.16.51.32

zookeeper2

集群节点

172.16.51.41

zookeeper3

集群节点

既然是集群自然有多台主机了,本次实验则使用3台主机。我们可以通过克隆的方式快速搭建它们。至于网卡模式不做要求,nat和主机都可以。仅取决与你是否想让它们能通外网。

首先打开我们已经安装好的centos7.2系统,我们先做克隆前的环境准备。先配置一下ip地址,本地镜像源和主机映射文件还要关闭防火墙。

然后关闭防火墙。

移走本地的网络源,通过ssh上传本地资源软件包然后做个本地源仓库挂载。默认都上传在root目录下。

编写一下主机映射文件。

[root@localhost ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.51.23 zookeeper1
172.16.51.32 zookeeper2
172.16.51.41 zookeeper3

安装一下java环境。可以用命令查看一下能不能找到java版本来验证java是否安装成功。不过一般yum命令安装完了都是成功的。。。。我都不会再去打这个命令。

[root@localhost ~]# yum install -y java java-devel
[root@localhost ~]# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

ssh本地上传zookeeper软件包准备解压使用。

[root@localhost ~]# tar -zxvf zookeeper-3.4.14.tar.gz

进入zookeeper-3.4.14/conf目录下,修改zoo_sample.cfg文件为zoo.cfg,并编辑该文件到文件末尾添加3个服务节点参数即可。其他不用动一般都是默认的端口之类的都能对上运行。

[root@localhost ~]# cd zookeeper-3.4.14/conf/
[root@localhost conf]# mv zoo_sample.cfg zoo.cfg
[root@localhost conf]# vi zoo.cfg

接着在3台机器dataDir目录(此处为/tmp/zookeeper)下,分别创建一个myid文件,文件内容分别只有一行,其内容为1,2,3。即文件中只有一个数字,这个数字即为上面zoo.cfg配置文件中指定的值。ZooKeeper是根据该文件来决定ZooKeeper集群各个机器的身份分配。先在1节点这边创建一下,然后克隆完后记得修改2和3节点的myid。

接着我们关闭这个虚拟机保存一个快照开始克隆。

选择完整克隆,防止zookeeper1节点如果出问题崩了牵连到其他2个节点。

zookeeper3也以相同的方式克隆,最后如下图所示。

接下来不要乱,开启这些虚拟机修改它们对应的ip地址和主机名以及myid数字标识。

zookeeper2节点地址

zookeeper3节点地址

配置完后记得重启网络服务包括zookeeper1节点。

然后修改它们各自的主机名,即使这边已经根据主机映射文件智能更新获取到了主机名,我们也要手动修改一下保险一点。

[root@zookeeper1 ~]# hostnamectl set-hostname zookeeper1
[root@zookeeper1 ~]# bash
[root@zookeeper2 ~]# hostnamectl set-hostname zookeeper2
[root@zookeeper2 ~]# bash
[root@zookeeper3 ~]# hostnamectl set-hostname zookeeper3
[root@zookeeper3 ~]# bash

在2节点和3节点上修改一下myid。3节点自己改成3,这里不截图贴了。

最后在3个节点的zookeeper启动目录下启动服务。

[root@zookeeper3 ~]# cd zookeeper-3.4.14/bin/
[root@zookeeper3 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@zookeeper3 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower

如果出现一个服务查看状态时报错不用紧张,先把所有节点的服务都启动好,然后再回来查看就行了。

可以看到,3个节点,zookeeper2leader,其他的都是follower

到这里为止zookeeper集群配置完毕,接着我们直接开始配置Kafka集群。

当时做的时候忘记把Kafka服务包也提前上传了,所以这边就需要手动上传给这三台机子了。

也可以选择上传给其中一台然后使用scp命令拷贝给另外两台。

因为是上传到root目录下所以需要cd回到root目录下去解压。

三个节点都需要解压哦。

修改Kafka配置文件,因为3个节点有需要相同注释修改的部分,所以我们可以先修改好这部分然后scp传给另外两个节点进行覆盖。

在zookeeper1节点,进入kafka_2.11-1.1.1/config目录下,编辑server.properties文件。

在配置文件中找到以下两行并注释掉。

[root@zookeeper1 config]# scp server.properties root@172.16.51.32:/root/kafka_2.11-1.1.1/config/server.properties
The authenticity of host '172.16.51.32 (172.16.51.32)' can't be established.
ECDSA key fingerprint is a2:06:6f:65:a3:1f:9c:53:91:6d:0a:81:d0:6f:da:6a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.51.32' (ECDSA) to the list of known hosts.
root@172.16.51.32's password:
server.properties                                        100% 6854     6.7KB/s   00:00
[root@zookeeper1 config]# scp server.properties root@172.16.51.41:/root/kafka_2.11-1.1.1/config/server.properties
The authenticity of host '172.16.51.41 (172.16.51.41)' can't be established.
ECDSA key fingerprint is a2:06:6f:65:a3:1f:9c:53:91:6d:0a:81:d0:6f:da:6a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.51.41' (ECDSA) to the list of known hosts.
root@172.16.51.41's password:
server.properties                                        100% 6854     6.7KB/s   00:00
[root@zookeeper1 config]#

接着再逐个节点修改不一样的部分。

1节点:

直接在文件末尾添加条目。137这些是行数序号不要抄。

    137 broker.id=1138 zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181139 listeners = PLAINTEXT://172.16.51.23:9092

2节点同理:

broker.id=2
zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181
listeners = PLAINTEXT://172.16.51.32:9092

3节点:

[root@zookeeper3 ~]# vi kafka_2.11-1.1.1/config/server.properties
broker.id=3
zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181
listeners = PLAINTEXT://172.16.51.41:9092

最后同样进入到启动目录启动服务。

1节点:

[root@zookeeper1 config]# cd
[root@zookeeper1 ~]# cd kafka_2.11-1.1.1/bin/
[root@zookeeper1 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper1 bin]# jps
10336 Kafka
2753 QuorumPeerMain
10405 Jps
[root@zookeeper1 bin]#

2:

[root@zookeeper2 ~]# cd
[root@zookeeper2 ~]# cd kafka_2.11-1.1.1/bin/
[root@zookeeper2 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper2 bin]#  jps
2708 Kafka
2327 QuorumPeerMain
2775 Jps
[root@zookeeper2 bin]#

3:

[root@zookeeper3 ~]# cd
[root@zookeeper3 ~]# cd kafka_2.11-1.1.1/bin/
[root@zookeeper3 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper3 bin]# jps
2327 QuorumPeerMain
2700 Kafka
2767 Jps
[root@zookeeper3 bin]#

接着我们测试一下服务。

在zookeeper1节点,进入kafka_2.11-1.1.1/bin目录下,创建topic命令

如果成功的话,会输出“Created topic "test".”。

[root@zookeeper1 bin]# ./kafka-topics.sh --create --zookeeper 172.16.51.23:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
[root@zookeeper1 bin]#

查看topic,虽然topic是在172.16.51.23上创建的,但是在其他机器上也能看到。我们可以到2和3节点的启动目录中使用命令查看。

[root@zookeeper2 bin]#  ./kafka-topics.sh --list --zookeeper 172.16.51.32:2181
test
[root@zookeeper2 bin]#[root@zookeeper3 bin]#  ./kafka-topics.sh --list --zookeeper 172.16.51.41:2181
test
[root@zookeeper3 bin]#

测试成功!

那么centos7.2系统部署ZooKeeper集群和Kafka集群(集群应用系统商城前置环境)全部完成!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于javassm实现的农产品供销服务系统

开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclip…

2024/4/2—力扣—不用加号的加法

代码实现: 思路:位运算,利用了异或和与的特性,异或操作与加操作的区别在于异或操作在二进制状态下两个数同1不进位,只是置为0,其他均相同,那么使用与运算计算进位值,补齐异或操作的缺…

深入理解指针2:数组名理解、一维数组传参本质、二级指针、指针数组和数组指针、函数中指针变量

目录 1、数组名理解 2、一维数组传参本质 3、二级指针 4、指针数组和数组指针 5、函数指针变量 1、数组名理解 首先来看一段代码: int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf("%d\n", sizeof(arr));return 0; } 输出的结果是&…

jupyter python paramiko 网络系统运维

概述 通过使用jupyter进行网络运维的相关测试 设备为H3C 联通性测试 import paramiko import time import getpass import re import os import datetimeusername "*****" password "*****" ip "10.32.**.**"ssh_client paramiko.SSHCli…

Nginx配置之localhost和反向代理

文章目录 第一步、查看安装位置和配置文件第二步、web服务器设置第三步、localhost 指令第四步、设置反向代理 清明假期,在家练习Nginx配置,在前期【 linux环境下安装配置nginx代理服务器】已经完成nginx环境搭建,本期主要实践web服务器&…

【分治算法】大整数乘法Python实现

文章目录 [toc]问题描述基础算法时间复杂性 优化算法时间复杂性 Python实现 个人主页:丷从心. 系列专栏:Python基础 学习指南:Python学习指南 问题描述 设 X X X和 Y Y Y都是 n n n位二进制整数,计算它们的乘积 X Y XY XY 基础…

libVLC 音频立体声模式切换

在libVLC中,可以使用libvlc_audio_set_channel函数来设置音频的立体声模式。这个函数允许选择不同的音频通道,例如立体声、左声道、右声道、环绕声等。 /*** Set current audio channel.** \param p_mi media player* \param channel the audio channel…

数据挖掘及其近年来研究热点介绍

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…

基于单片机16路多路抢答器仿真系统设计

**单片机设计介绍,基于单片机16路多路抢答器仿真系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机16路多路抢答器仿真系统的设计概要主要涵盖硬件设计、软件编程以及功能实现等方面。以下是针对该设计的详细概…

SAP HCM PT 2003修改班次,PP61无法自动更新

今天遇到一个问题,2003修改班次以后PP61无法自动更新,开始一直以为是什么配置点漏掉,但是发现开发机没问题,后来发现是用户选保存的时候选中目标计划的完成,这个是保存到实际计划的,数据存储psoll中&#x…

redis的常用基本命令与持久化

文章目录 redis的基本命令1.授权密码2.增加、覆盖、查询、删除、切换库名、移动、清空数据库 Redis持久化RDB模式主动备份自动备份RDB备份过程 AOF备份模式开启AOF备份模式执行流程 总结 redis的基本命令 1.授权密码 config set requirepass 密码设置完密码需要认证密码以后才…

【御控物联】JavaScript JSON结构转换(19):数组To对象——规则属性重组

文章目录 一、JSON结构转换是什么?二、术语解释三、案例之《JSON数组 To JSON对象》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

软件设计师29--并发控制

软件设计师29--并发控制 考点1:事务的特性例题: 考点2:并发问题并发产生的问题丢失更新不可重复读问题读“脏”数据 考点3:封锁协议例题: 考点1:事务的特性 原子性(Atomicity)&…

C顺序表:通讯录

目录 前言 通讯录数据结构 通讯录初始化 查找名字 增加联系人 删除联系人 展示所有联系人 查找联系人 修改信息 销毁通讯录 完整通讯录代码 前言 数据结构中的顺序表如果已经学会了,那么我们就可以基于顺序表来完成一个通讯录了 通讯录其实我们使用前…

红蓝色WordPress外贸建站模板

红蓝色WordPress外贸建站模板 https://www.mymoban.com/wordpress/5.html

Mysql底层原理十:Redo log

3.7 Redo log Redo log记录的是物理日志,具体就是哪个表空间,哪个数据页,哪个偏移量,改了几个字节,改成什么表空间号数据页号偏移量修改几个字节的值具体的值 3.7.1 Redo block (批处理缓存)…

nginx支持的多种负载均衡策略

目录 1.轮询(默认) 2. ip_hash 3. 加权轮询(weight) 4. fair(第三方) 5. 最少连接(least_conn) 1.轮询(默认) 将请求依次分配给每个服务器,确…

DeepSort行人车辆识别系统(实现目标检测+跟踪+统计)

文章目录 1、前言2、源项目实现功能3、运行环境4、如何运行5、运行结果6、遇到问题7、使用框架8、目标检测系列文章 1、前言 1、本文基于YOLOv5DeepSort的行人车辆的检测,跟踪和计数。 2、该项目是基于github的黄老师傅,黄老师傅的项目输入视频后&#x…

区块链相关概念

区块链是什么,就算是做计算机技术开发的程序员,100个当中都没有几个能把这个概念理解明白,更不要说讲清楚了。那对于普通人来说,就更扯了。 除了“挖矿”表面意思似乎比较好理解外,其他的基础概念真TMD绕。 去中心化、…

坚持十天做完Python入门100题第一天

坚持十天做完Python入门100题第一天 第1题 变量更新第2题 变量命名规则第3题 类型错误第4题 序列索引第5题 序列切片第6题 负数切片第7题 Range函数 第1题 变量更新 解析:Python代码的读取和执行是由上至下的,变量n一开始被赋值为1,但被更新了…