zk集群搭建

zk集群在搭建部署的时候,通常选择2n+1奇数台。底层 Paxos 算法支持(过半成功)。

zk部署之前,保证服务器基础环境正常、JDK成功安装。

服务器基础环境

  • IP
  • 主机名
  • hosts映射
  • 防火墙关闭
  • 时间同步
  • ssh免密登录
    • JDK环境

1、虚拟机克隆

  • 前提:是虚拟机处于关闭状态。
  • 分类:链接克隆 、完整克隆
     
链接克隆:表层是互相独立 底层存储是交织在一起;
完整克隆:完全互相独立的两台虚拟机
  • 修改克隆机器属性。
     
完整克隆意味着两台机器一模一样。在局域网网络中,有些属性是决定不能一样的。
比如:IP、MAC、主机名hostname
  • 3台虚拟机硬件分配 16G
     
node1  2*2cpu  4G内存
node2  1*1cpu  2G内存
node3  1*1cpu  2G内存

2、修改IP、主机名

  • 命令修改 临时生效 重启无效
  • 修改底层配置文件 永久生效 重启才能生效。
vim /etc/hostnamenode2.itcast.cn
#修改IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"     #网卡类型 以太网
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"   #ip等信息是如何决定的?  dhcp动态分配、 static|node 手动静态分配
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"        #网卡名称
UUID="74c3b442-480d-4885-9ffd-e9f0087c9cf7"
DEVICE="ens33"
ONBOOT="yes"       #是否开机启动网卡服务
IPADDR="192.168.88.151"  #IP地址
PREFIX="24"   #子网掩码   等效: NETMASK=255.255.255.0
GATEWAY="192.168.88.2"  #网关服务
DNS1="192.168.88.2"     #网关DNS解析
DOMAIN="114.114.114.114" #公网DNS解析  114.114.114.114  谷歌:8.8.8.8  阿里百度DNS
IPV6_PRIVACY="no#修改主机名hostname
node2.itcast.cn

重启linxu系统 reboot


3、hosts映射修改

  • 背景
在网络中,很少直接通过IP访问机器,原因难记。
通常使用主机名或者域名访问。
此时就会涉及到主机名域名和IP之间的解析
  • 实现
    • 本地hosts文件 进行本地查找解析
localhost 127.0.0.1 

寻找DNS服务器 域名解析服务

  • 配置本地hosts文件实现
    • linux上
vim /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.239.151 node1.itcast.cn node1
192.168.239.152 node2.itcast.cn node2
192.168.239.153 node3.itcast.cn node3
  •           windows上
C:\Windows\System32\drivers\etc\hosts192.168.88.151 node1.itcast.cn node1
192.168.88.152 node2.itcast.cn node2
192.168.88.153 node3.itcast.cn node3

4、 防火墙关闭

  • firewalld
#查看防火墙状态
systemctl status firewalld#关闭防火墙
systemctl stop firewalld#关闭防火墙开机自启动
systemctl disable firewalld#centos服务开启关闭命令
centos6:(某些可以在centos7下使用)service 服务名 start|stop|status|restartchkconfig on|off 服务名centos7:	systemctl start|stop|status|restart 服务名systemctl disable|enable 服务名  #开机自启动  关闭自启
  • selinux
vim /etc/selinux/config# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
    • 需要重启生效

5、 集群时间同步

  • 背景:分布式软件主从角色之间通常基于心跳时间差来判断角色工作是否正常。
  • 国家授时中心 北京时间
    • 授时服务器 国家级 企业级 院校级
  • linux上如何同步时间
    • ntp 网络时间协议 实现基于网络授时同步时间。
    • date
查看当前的系统时间 也可以手动指定设置时间 不精准[root@node1 ~]# date
Thu May 20 14:50:30 CST 2021
    • ntpdate
#ntpdate  授时服务器ntpdate ntp5.aliyun.com[root@node1 ~]# ntpdate ntp5.aliyun.com
20 May 14:53:07 ntpdate[2187]: step time server 203.107.6.88 offset -1.354309 sec#企业中运维往往不喜欢ntpdate 原因是这个命令同步时间是立即的。不是平滑过渡的。
    • ntpd软件
通过配置 平滑的和授时服务器进行时间的同步
    • VMware软件可以提高让虚拟机的时间和windows笔记本保持一致。

6、ssh免密登录

  • 背景
#在进行集群操作的时候  需要从一台机器ssh登录到其他机器进行操作 默认情况下需要密码[root@node1 ~]# ssh node2
The authenticity of host 'node2 (192.168.227.152)' can't be established.
ECDSA key fingerprint is SHA256:5d9A04L+QfYuW7X1J44cKNbyUtuwPkhg+//0OfEczHI.
ECDSA key fingerprint is MD5:74:f0:65:22:af:fd:65:af:ff:91:37:83:3f:ef:ac:81.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'node2,192.168.227.152' (ECDSA) to the list of known hosts.
root@node2's password: 
Last login: Thu May 20 11:48:37 2021 from 192.168.227.1[root@node2 ~]# exit
logout
Connection to node2 closed.
  • 需求:能否实现免密ssh登录。
    • 技术:SSH方式2:免密登录功能。 原理见课堂画图
  • 实现
#实现node1----->node2#step1
在node1生成公钥私钥
[root@node1 ~]# ssh-keygen  一顿回车 在当前用户的home下生成公钥私钥 隐藏文件[root@node1 .ssh]# pwd
/root/.ssh
[root@node1 .ssh]# ll
total 12
-rw------- 1 root root 1675 May 20 11:59 id_rsa
-rw-r--r-- 1 root root  402 May 20 11:59 id_rsa.pub
-rw-r--r-- 1 root root  183 May 20 11:50 known_hosts#step2
copy公钥给node2
ssh-copy-id node2  
注意第一次需要密码#step3  
[root@node1 .ssh]# ssh node2
Last login: Thu May 20 12:03:30 2021 from node1.itcast.cn
[root@node2 ~]# exit
logout
Connection to node2 closed.
  • 课程要求
#至少打通node1---->node1  node2  node3 这三个免密登录 #至于所有机器之间要不要互相免密登录 看你心情

7、JDK的安装、环境变量配置

  • 简单:解压即可使用 但是通常配置环境变量,以便于在各个路径下之间使用java。
  • 要求:JDK1.8版本
  • 步骤
#上传安装包到/export/server下
jdk-8u241-linux-x64.tar.gz#解压到当前目录
tar zxvf jdk-8u241-linux-x64.tar.gz#删除红色安装包(可选)
rm -rf jdk-8u241-linux-x64.tar.gz#配置环境变量
vim /etc/profile            #G + o  export JAVA_HOME=/export/server/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar#重新价值环境变量文件 让配置生效
source /etc/profile[root@node1 ~]# java -version      
java version "1.8.0_241"
  • 将node1的JDK安装包scp给其他机器
 #scp安装包cd /export/server/scp -r jdk1.8.0_241/ root@node2:$PWD#scp环境变量文件scp /etc/profile node2:/etc/#别忘了 其他机器source哦source /etc/profile

8、zk具体安装部署

  • zk具体安装部署(选择node1安装 scp给其他节点)

安装包

    • zookeeper-3.4.6.tar.gz
    • 上传解压重命名
cd /export/servertar zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6/ zookeeper修改配置文件zoo.cfg
#zk默认加载的配置文件是zoo.cfg 因此需要针对模板进行修改。保证名字正确。
cd zookeeper/conf
mv zoo_sample.cfg zoo.cfgvi zoo.cfg#修改
dataDir=/export/data/zkdata
#文件最后添加 2888心跳端口 3888选举端口
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

  • 扩展:心跳机制
    • 分布式软件中从角色向主角色进行心跳 heartbeat
    • 目的:报活
  • myid
#在每台机器的dataDir指定的目录下创建一个文件 名字叫做myid
#myid里面的数字就是该台机器上server编号。server.N  N的数字就是编号
[root@node1 conf]# mkdir -p /export/data/zkdata
[root@node1 conf]# echo 1 >/export/data/zkdata/myid把安装包同步到其他节点上
cd /export/server
scp -r zookeeper/ node2:$PWD
scp -r zookeeper/ node3:$PWD
创建其他机器上myid和datadir目录
[root@node2 ~]# mkdir -p /export/data/zkdata
[root@node2 ~]# echo 2 > /export/data/zkdata/myid [root@node3 ~]# mkdir -p /export/data/zkdata
[root@node3 ~]# echo 3 > /export/data/zkdata/myid

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

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

相关文章

014-GeoGebra基础篇-快速解决滑动条的角度无法输入问题

有客户反馈,他的Geogebra一直有个bug,那就是输入角度最大值时总不按照他设定的展示,快被气炸了~ 目录 一、问题复现(1)插入一个滑动条(2)选择Angle(3)输入90,…

复现centernet时,报错RuntimeError: CUDA error: out of memory

运行 python test.py ctdet --dataset coco --exp_id coco_dla --load_model /root/CenterNet/exp/ctdet/coco_dla/model_last.pth --gpus 0 --test_scales 1 报错下面: RuntimeError: CUDA error: out of memory明明显存是够用的 解决办法: 找到自己…

代码随想录——无重叠区间(Leetcode435)

题目链接 贪心 排序 class Solution {public int eraseOverlapIntervals(int[][] intervals) {int res 0;if(intervals.length 1 || intervals.length 0){return res;}// 按左边界排序Arrays.sort(intervals, new Comparator<int[]>() {public int compare(int[] …

Protobuf(三):理论学习,简单总结

1. Protocol Buffers概述 Protocol Buffers&#xff08;简称protobuf&#xff09;&#xff0c;是谷歌用于序列化结构化数据的一种语言独立、平台独立且可扩展的机制&#xff0c;类似XML&#xff0c;但比XML更小、更快、更简单protobuf的工作流程如图所示 1.1 protobuf的优点…

【第17章】MyBatis-Plus自动维护DDL

文章目录 前言一、功能概述二、注意事项三、代码示例四、实战1. 准备2. ddl配置类3. 程序启动4. 效果(数据库) 总结 前言 在MyBatis-Plus的3.5.3版本中&#xff0c;引入了一项强大的功能&#xff1a;数据库DDL&#xff08;数据定义语言&#xff09;表结构的自动维护。这一功能…

告别高查重率,AI降重工具帮你快速过关

高查重率是许多毕业生的困扰。通常&#xff0c;高查重率源于过度引用未经修改的参考资料和格式错误。传统的降重方法&#xff0c;如修改文本和增添原创内容&#xff0c;虽必要但耗时且成效不一。 鉴于此&#xff0c;应用AI工具进行AIGC降重成为了一个高效的解决方案。这些工具…

Cloudflare 推出一款免费对抗 AI 机器人的可防止抓取数据工具

上市云服务提供商Cloudflare推出了一种新的免费工具&#xff0c;可防止机器人抓取其平台上托管的网站以获取数据以训练AI模型。 一些人工智能供应商&#xff0c;包括谷歌、OpenAI 和苹果&#xff0c;允许网站所有者通过修改他们网站的robots.txt来阻止他们用于数据抓取和模型训…

Word “当前页“ 与 “前一页“ (含部分内容)间有大半页空白,删除空白方法

鼠标光标选中需要向上移的句子&#xff0c;右键点击“段落”&#xff0c;然后在跳出的窗口中按照“换行和分页”中的红色方框内取消勾选后&#xff0c;点击确定即可。

@化工人|人员定位系统如何选择?从了解定位技术开始

提及化工安全管理所面临的主要难题&#xff0c;大家往往会想到”人难管、事难办、责难负“这三难&#xff0c;而每一难都离不开”人“这个主体。因此&#xff0c;在企业日渐实现数字化转型的今天&#xff0c;越来越多的化工企业选择建设以人员定位系统为核心的企业安全生产信息…

实时数仓Hologres OLAP场景核心能力介绍

作者&#xff1a;赵红梅 Hologres PD OLAP典型应用场景与痛点 首先介绍典型的OLAP场景以及在这些场景上的核心痛点&#xff0c;OLAP典型应用场景很多&#xff0c;总结有四类&#xff1a;第一类是BI报表分析类&#xff0c;例如BI报表&#xff0c;实时大屏&#xff0c;数据中台等…

Web前端开发——HTML快速入门

HTML&#xff1a;控制网页的结构CSS&#xff1a;控制网页的表现 一、什么是HTML、CSS &#xff08;1&#xff09;HTML &#xff08;HyperText Markup Languaqe&#xff1a;超文本标记语言&#xff09; 超文本&#xff1a;超越了文本的限制&#xff0c;比普通文本更强大。除了…

Aigtek高压功率放大器主要应用场景是什么

高压功率放大器是一种关键的电子设备&#xff0c;其主要功能是将低电压信号放大到较高电压水平&#xff0c;以满足特定应用的需求。这种类型的放大器在各种领域都发挥着至关重要的作用。安泰电子官网将为大家介绍高压功率放大器的主要应用场景&#xff0c;并介绍其在这些领域中…

关于Web开发的详细介绍

目录 一、什么是Web&#xff1f; 二、Web网站的工作流程和开发模式 &#xff08;1&#xff09;简单介绍 &#xff08;2&#xff09;工作流程 1、第一步 2、第二步 &#xff08;3&#xff09;Web网站的开发模式 1、前后端分离开发模式 ​编辑2、混合开发模式 三、开发W…

智慧矿山:EasyCVR助力矿井视频多业务融合及视频转发服务建设

一、方案背景 随着矿井安全生产要求的不断提高&#xff0c;视频监控、数据传输、通讯联络等业务的需求日益增长。为满足矿井生产管理的多元化需求&#xff0c;提高矿井作业的安全性和效率&#xff0c;TSINGSEE青犀EasyCVR视频汇聚/安防监控综合管理平台&#xff0c;旨在构建一…

一款优秀、亮眼的开源堡垒机

介绍 在运维的日常工作中&#xff0c;登陆服务器操作不可避免&#xff0c;为了更安全的管控服务器&#xff0c;但凡有点规模的公司都会上线堡垒机系统&#xff0c;堡垒机能够做到事前授权、事中监控、事后审计&#xff0c;同时也可以满足等保合规要求。 提到堡垒机&#xff0…

3D虚拟会议室打破传统会议局限,提供沉浸式会议体验

一、身临其境的虚拟会议体验 1、沉浸感提升参会效果 3D虚拟会议室借助虚拟现实技术为用户创造出一个仿佛置身真实会议场所的感觉。用户可以进入一个虚拟的会议室&#xff0c;感受到空间的深度和互动性。这种身临其境的体验&#xff0c;使得参会者不仅仅是被动地观看屏幕&…

音乐剪辑免费软件有哪些?7个音频剪辑技巧!

音乐剪辑免费软件有很多&#xff0c;但是适合自己或适合剪辑小白的却屈指可数。 音频剪辑软件千千万&#xff0c;如果是没有任何剪辑经验的小白用户&#xff0c;个人建议使用知名度较高的音频剪辑软件。不管是免费还是收费的音频剪辑软件&#xff0c;只要能够解决问题&#xf…

[Mysql] 的基础知识和sql 语句.教你速成(下)——数据库的约束篇

目录 前言 约束 一.我们为什么需要约束 二.常见的约束类型 NOT NULL 约束 UNIQUE 约束 DEFAULT 约束 PRIMARY KEY FOREIGN KEY CHECK约束 原因&#xff1a; 结尾 前言 距离上篇的更新已经快两周了,这个时候大伙都已经考完了吧!现在更新多少有点马后炮,但是没办法呀…

Spring源码十:BeanPostProcess

上一篇Spring源码九&#xff1a;BeanFactoryPostProcessor&#xff0c;我们看到ApplicationContext容器通过refresh方法中的postProcessBeanFactory方法和BeanFactoryPostProcessor类提供预留扩展点&#xff0c;他可以在Spring容器的层面对BeanFactroy或其他属性进行修改&#…