Zookeeper学习

article/2025/10/31 3:18:42

文章目录

    • 今日目标
    • apache zookeeper
      • zookeeper的概念
      • 分布式和集群的理解
      • zookeeper的集群架构和角色
      • zookeeper的5大特性
      • 部署zookeeper集群环境
        • 计算机集群的安装
        • 部署三台节点(克隆两台)
        • 配置节点内存和CPU
        • zookeeper安装
      • zookeeper的数据模型
      • zookeeper的节点类型
      • 使用 shell 操作zookeeper
        • watch机制特点
      • zookeeper 通过 JAVA Api 操作
      • zookeeper的选举机制
  • 个人导图笔记
      • zookeeper概念
      • 重要概念
        • 监听器
        • ZBA协议
        • 写流程
        • 知识点回顾

今日目标

  • 计算机集群的安装和部署(根据课件安装)
  • zookeeper学习
    • zookeeper的概念 (了解)
    • zookeeper的架构和角色 3个角色(理解)
    • zookeeper的5个特性(了解)
    • zookeeper的安装(能够操作)
    • zookeeper的数据模型(理解)
    • zookeeper的节点类型(理解)
    • zookeeper的shell操作(会增删改查,watch)
    • zookeeper的 jAVA API(了解)
    • zookeeper的选举机制(理解,面试题)

apache zookeeper

zookeeper的概念

  • zookeeper为分布式应用提供分布式协调服务的软件

  • zookeeper的本质就是分布式小型文件系统和监控机制

  • 应用场景1-协调主机上下线
    在这里插入图片描述

  • 主备切换
    在这里插入图片描述

  • 其他应用场景

    1. 统一命名服务
    2. 统一配置管理
    3. 统一集群管理
    4. 服务器动态上下线
    5. 软负载均衡

分布式和集群的理解

  • 集群

    将一个应用或者软件进行重复部署,每个节点的数据和状态都是一致。

    每个人同时具备 洗菜 配菜 做菜 端菜 两个人都具备这个功能。

  • 分布式

    将一个应用或者软件根据应用步骤分别部署到不同的节点上进行计算。

    一个人: 洗菜 配菜

    一个人: 做菜

    一个人: 端菜

  • 分布式集群

    每个步骤都会有多个人同时操作,备份。

zookeeper的集群架构和角色

在这里插入图片描述

总结: zookeeper有三个角色

  1. leader 主节点
  2. follower 从节点
  3. observer 观察者节点(一般情况下不设置)

读频率会远远大于写。

注意:zookeeper集群不能正常运行时,节点都会进入Looking状态(角色)

zookeeper的5大特性

  • 全局数据的一致性

    连接不同的服务器,数据读取的都是一致的。

  • 可靠性

    只要数据被任意一台所接受,其他的节点也同样被接受。

  • 顺序性

    1. 全局有序

      指的是针对服务器来说,如果其中的一个节点事务型操作,另外一台也进行事务操作,他们之间的操作是有序的。

在这里插入图片描述

  1. 偏序

    指的是针对客户端来说,如果先事务操作了 a 在操作c ,执行顺序就是 a c

在这里插入图片描述

  • 数据更新的原子性

需要满足更新成功半数以上的服务器

  • 实时性

    zookeeper 小型的服务器,从节点拉取数据,保证数据的实时性。

部署zookeeper集群环境

计算机集群的安装

部署三台节点(克隆两台)

  • 在node1上点击管理 => 克隆 出来两台虚拟机

配置节点内存和CPU

  • 需要多少内存?

    总内存 / 4 每台虚拟机需要的内存数

  • 设置每台虚拟机的内存

    编辑虚拟机属性 -> 内存 调整

  • 设置 MAC 地址

    MAC 就是网卡中唯一标识,路由优化 mac 找到你 家庭地址

    IP 就是在互联网中找到你的位 个人的位置信息 会变化

    如何修改MAC

    • 网络编辑器 -> 高级 -> mac 自动生成唯一编码
  • 设置每台节点的IP地址(静态ip)

    设置的三台节点分别是

    192.168.88.161 node1

    192.168.88.162 node2

    192.168.88.163 node3

    配置网关

在这里插入图片描述

如何设置ip

vim /etc/sysconfig/network-scripts/ifcfg-ens32

在这里插入图片描述

重启服务

systemctl restart network

判断是否设置成功

ping www.baidu.com
  • 设置主机名称

    主机别名

    如何设置主机名

    vim /etc/hostname
    
  • 域名映射

    vim /etc/hosts192.168.88.161 node1 node1.itcast.cn
    192.168.88.162 node2 node2.itcast.cn
    192.168.88.163 node3 node3.itcast.cn
    
  • 关闭防火墙和selinux

    防火墙: 配置屏蔽(开放)规则,ip和port

    如何关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    systemctl status firewalld
    

    关闭selinux

    vim /etc/selinux/config
    SELINUX=enforcing 改成 disabled
    
  • 重启服务器

    reboot

  • 设置三台节点之间的免密登录

在这里插入图片描述

  1. 首先生成一个密钥对,公钥拷贝给连接的节点,node2
  2. ssh 连接node2,node2会随机生成一个文本串,用公钥进行加密
  3. 将加密的数据发送给node1,node1会通过私钥进行解密
  4. 解密之后的数据会发送给node2,node2会将解密的数据和生成的数据进行比对
  5. 如果比对成功允许免密登录,不需要输入密码。
  • 如何操作免密登录

    1. 三台节点都生成一对秘钥对

      ssh-keygen -t rsa

    2. 将三台节点的公钥全部先拷贝给node1

      ssh-copy-id node1

    3. 将node1中三台的公钥在拷贝分发到另外两台 node2 node3

      scp -r authorized_key root@~/.ssh/

      scp /root/.ssh/authorized_keys node2:/root/.ssh
      scp /root/.ssh/authorized_keys node3:/root/.ssh
      
  • 时钟同步

    主要保证不同的服务器之间的时间一致,状态一致。

    如何进行操作?

    1. 都连接到外部服务器
    crontab -e
    * * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
    
    1. 同时连接同一台内网主机
    yum install -y ntp
    # 设置参数
    vim /etc/ntp.conf 
    # 设置哪些节点能够同步当前node1
    restrict  192.168.88.0  mask  255.255.255.0  nomodify  notrap
    # 如果连接不上外网 就使用当前时间
    server   127.127.1.0 
    fudge    127.127.1.0  stratum  10
    # 禁用当前节点连接外网
    #server  0.centos.pool.ntp.org
    #server  1.centos.pool.ntp.org
    #server  2.centos.pool.ntp.org
    #server  3.centos.pool.ntp.org# 设置 BIOS和系统时间保持同步
    # 主板上的基本输入输出部件
    vim /etc/sysconfig/ntpd
    SYNC_HWLOCK=yes
    

    补充内容: 定时任务(linux)
    在这里插入图片描述

# 12点半执行脚本
30 12 * * * 脚本 参数
# 每三个小时跑一次
* */3 * * * 脚本 参数
# 1-3 跑一次
* 1-3 * * * 脚本 参数
  1. node2 node3如何同步node1时间

    # 将node1同步到node2 和node3
    */1 * * * * /usr/sbin/ntpdate 192.168.88.161
    
  • 安装JDK1.8_241 版本

    1. 解压缩
    tar -zxvf /export/software/jdk1.8_241 -C /export/server
    
    1. 配置环境变量
    #不建议之间修改 /etc/profile 文件
    vim /etc/profile.d/my_env.shexport JAVA_HOME=/export/software/jdk1.8_241
    export PATH=:$PATH:$JAVA_HOME
    
    1. 立即生效
    source /etc/profile
    
    1. 执行java命令,验证安装

    java -version

    javac -version

  • 虚拟机镜像快照

    保存一个快照,快速进行数据的恢复。

zookeeper安装

  1. 下载zookeeper软件包 zookeeper3.4.6.tar.gz

  2. 将压缩包解压缩到 /export/server

  3. 修改zookeeper的配置文件 cp zoo_sample.xml zoo.xml

    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/export/server/zookeeper-3.4.6/zkdatas/
    # the port at which the clients will connect
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    autopurge.purgeInterval=1# 集群中服务器地址
    # server.A=B:C:D
    #	A是一个数字,表示这个是第几号服务器
    #	B是这个服务器的地址
    #	C是这个服务器Follower与集群中的Leader服务器交换信息的端口
    #	D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的
    server.1=node1:2888:3888
    server.2=node2:2888:3888
    server.3=node3:2888:3888
    
  4. 添加每台节点 myid

  5. 将修改好的zookeeper 软件包分发给 node2 和 node3

    scp 服务器之间的文件拷贝

    scp 文件 用户名@主机名:目录

    scp -r 文件夹 用户名@主机名:目录

  6. 修改node2 和node3 的myid

  7. 启动zookeeper服务器

/export/server/zookeeper-3.4.6/bin/zkServer.sh start
  • 启动的角色分别是:

node1:follower

node2:leader

node3:follower

zookeeper的数据模型

在这里插入图片描述

  • 目录树,名称空间 (一本书的目录)

  • 与普通文件系统不同的地方

    1. 每个节点既可以存储数据,又可以有子节点
    2. 节点存储的大小默认是 1MB ,远远小于1MB
    3. 通过引用路径访问,必须要从 / 目录开始读取文件或者数据 ls /

    Znode的组成:

    1. stat 状态

在这里插入图片描述

  1. 子Znode childre

在这里插入图片描述

  1. data 数据

在这里插入图片描述

zookeeper的节点类型

  • zookeeper节点类型分为:

    1. 临时节点

    session会话,会话结束的时候,关闭当前的节点。

    客户端 => 服务器 建立连接,产生一个 session 会话,与会话 session相关

    1. 永久节点

    不与session相关,只要创建,会永久存在。

    1. 序号

    带上序号节点被分为了 4 类:

    1. 临时序号的节点
    2. 永久序号的节点
    3. 临时节点
    4. 永久节点

使用 shell 操作zookeeper

  1. 通过客户端连接 zookeeper

    zkCli.sh -server 主机名:端口zkCli.sh -server node1:2181
    
  2. 通过shell操作zookeeper (需要掌握)

    help 将所有的操作命令列出来

ZooKeeper -server host:port cmd argsset path data [version]ls path [watch]delquota [-n|-b] pathls2 path [watch]setquota -n|-b val pathhistory delete path [version]listquota pathrmr pathget path [watch]create [-s] [-e] path data aclconnect host:port# 创建一个持久 znode 节点 hadoop
create /hadoop hadoop
# 创建一个临时 zonode 节点 hive
create -e /hive hive
# 创建一个带序号的 znode 临时节点 spark
create -s -e /spark spark
# 修改节点的数据 将 hadoop 修改为 hive
set /hadoop hive
# 删除当前没有子节点的 Znode 的节点
delete /hadoop
# 删除带子节点的 Znode 的节点
rmr /hadoop/hive
# 查询当前的子节点
ls /hadoop
# 查询当前的子节点包括 stat 状态数据
ls2 /hadoop
# 想连接到其他的节点  node2
connect node2:2181
# 设置配额信息 ,节点数据的大小,子节点的个数
setquota -n|-b val path
-n 子节点的个数
-b 子节点的数据的大小
# 允许当前的hive节点下只能有两个子节点(不生效)
setquota -n 2 /hive
# 查询配额的信息列表
listquota /hive

在这里插入图片描述

扩充内容:

  • 临时节点不能创建子节点

watch机制特点

  • 一次性触发

  • 事件触发

    state 状态 type 事件的类型 path 监控的路径

  • 先注册再触发

ls /hive watch

在这里插入图片描述

zookeeper 通过 JAVA Api 操作

  1. 需求

    对zookeeper节点进行创建、修改节点数据、获取节点数据、watch 节点

  2. 分析步骤

    //1.创建 Znode 节点,添加 createZnode 方法//1.1 定制一个重试策略//1.2 工厂类获取一个客户端对象//1.3 开启一个客户端对象//1.4 创建Znode 节点对象,在节点/hello2下写入一个 world 内容//1.5 关闭客户端对象
    //2.修改 Znode 节点数据,创建 nodeData 方法//2.1 定制一个重试策略//2.2 工厂类获取一个客户端对象//2.3 开启一个客户端对象//2.4 客户端设置指定路径下的数据//2.5 关闭客户端对象
    //3.Znode 节点的数据查询 getData方法//3.1 定制一个重试策略 //3.2 工厂类获取一个客户端对象//3.3 开启一个客户端对象//3.4 判断路径并获取 /hello2 的数据//3.4.1 实例化 ZkClient//3.4.2 通过zkClient判断路径是否存在,如果存在了获取此节点下的值//3.4.3 如果不存在路径提示,路径不存在//3.5 打印输出此路径下的数据//3.6 关闭客户端对象
    //4.创建监听节点事件 watchNode方法//4.1 定制一个重试策略//4.2 工厂创建客户端对象//4.3 开启客户端对象//4.4 将监听的节点树指定给缓存TreeCache中//4.5 自定义监听事件,实现匿名内部类,判断事件类型//4.6 开启缓存树进程//4.7 阻塞进程
    
  • 代码实现

    ctrl + h : 用于显示当前的抽象类或者接口的所有子类

    ctrl + p : 快速显示当前参数的类型列表 快捷键

    /*** Author itcast* Date 2020/12/20 16:46* 需求:* 1.创建一个节点 hive 内容 hive* 2.修改这个节点的内容 /hive hive -> hadoop* 3.判断如果当前的节点/hive存在,读取/hive下的数据* 4.创建一个带监听/hive的事件,捕捉当前这个节点做了什么操作*/
    public class ZookeeperDemo {public CuratorFramework client;@Beforepublic void init() {//连接字符串String connectString = "node1:2181,node2:2181";ExponentialBackoffRetry retryPolicy = new ExponentialBackoffRetry(2000, 3);//创建一个客户端 CuratorFrameworkFactoryclient = CuratorFrameworkFactory.newClient(connectString, retryPolicy);//开启这个客户端client.start();}//1.创建 Znode 节点,添加 createZnode 方法//1.1 定制一个重试策略//1.2 工厂类获取一个客户端对象//1.3 开启一个客户端对象//1.4 创建Znode 节点对象,在节点/hello2下写入一个 world 内容//1.5 关闭客户端对象public void createZnode() throws Exception {//写入数据 /hello2 worldclient.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/hello2", "world".getBytes());}//2.修改 Znode 节点数据,创建 nodeData 方法//2.1 定制一个重试策略//2.2 工厂类获取一个客户端对象//2.3 开启一个客户端对象//2.4 客户端设置指定路径下的数据//2.5 关闭客户端对象public void nodeData() throws Exception {Stat stat = client.setData().forPath("/hello2", "hive".getBytes());long ctime = stat.getCtime();long mtime = stat.getMtime();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String ctimeStr = dateFormat.format(ctime);String mtimeStr = dateFormat.format(mtime);System.out.println(ctimeStr);System.out.println(mtimeStr);}//3.Znode 节点的数据查询 getData方法//3.1 定制一个重试策略//3.2 工厂类获取一个客户端对象//3.3 开启一个客户端对象//3.4 判断路径并获取 /hello2 的数据//3.4.1 实例化 ZkClient//3.4.2 通过zkClient判断路径是否存在,如果存在了获取此节点下的值//3.4.3 如果不存在路径提示,路径不存在//3.5 打印输出此路径下的数据//3.6 关闭客户端对象public void getData() throws Exception {//判断节点是否存在 如果存在在获取数据ZkClient zkClient = new ZkClient("node1:2181");if (zkClient.exists("/hello2")) {byte[] value = client.getData().forPath("/hello2");String values = new String(value);System.out.println(values);}}//4.创建监听节点事件 watchNode方法//4.1 定制一个重试策略//4.2 工厂创建客户端对象//4.3 开启客户端对象//4.4 将监听的节点树指定给缓存TreeCache中//4.5 自定义监听事件,实现匿名内部类,判断事件类型//4.6 开启缓存树进程//4.7 阻塞进程@Testpublic void watchNode() throws Exception {TreeCache treeCache = new TreeCache(client, "/hello2");treeCache.getListenable().addListener(new TreeCacheListener() {@Overridepublic void childEvent(CuratorFramework client, TreeCacheEvent event) throws Exception {//如果是创建节点 打印当前节点被创建//如果当前节点被修改 被修改//如果当前节点被删除 被删除switch (event.getType()) {case NODE_ADDED:System.out.println("当前节点被创建");break;case NODE_UPDATED:System.out.println("当前节点被更新");break;case NODE_REMOVED:System.out.println("当前节点被删除");//client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("")}}});treeCache.start();Thread.sleep(100000);}@Afterpublic void close() {//客户端关闭client.close();}
    }
    

在这里插入图片描述

  • 监控节点的事件信息

在这里插入图片描述

zookeeper的选举机制

在这里插入图片描述

  • 新集群的选举机制

    首先第一台进行选举,发现没有其他的节点,没有选出leader,当前还是looking

    当第二台开机,进行选举,各投自己一票,信息的交换,发现第二台的级别 myid比第一台大

    node2会获取两票,node1 0 票,node2 两票没有超过半数,两个节点都是looking状态,

    当第三台开机,各投自己一票,信息的交换,发现第三台的级别最高,第三台获取3票,超过半数

    状态变成leader

    第四台,发现没有选举looking ,直接变成 follower

    第五台同第四台。

  • 老集群选举机制

    只需要考虑 zxid 事务id,事务id的级别是最高的,如果事务id一样的情况,看myid谁大选谁做leader。

问题集锦

  1. ssh srt 不能连接 vmware 虚拟机

    解决办法:

    1. 修改 vmware 网络编辑器中 网关 192.168.88.1

    2. 修改本地适配器 IPV4
      在这里插入图片描述



个人导图笔记

zookeeper概念

在这里插入图片描述
zookeeper安装要点
在这里插入图片描述

重要概念

监听器

在这里插入图片描述

ZBA协议

在这里插入图片描述

写流程

在这里插入图片描述
在这里插入图片描述


知识点回顾

下面我们通过一些简单问题来回顾一下知识点

zookeeper概念:是____________________应用(框架)zookeeper的本质是_____________系统和______________机制zookeeper的应用场景:统一的配_______、集________我们使用zookeeper主要是因为它__________________的特性5大 特性:1,全__________,2,___靠____,3,顺____,4,数据更______,5,实_____(快)zookeeper集群(至少___台):配置_______文件并分发,各节点配置自己的_____文件,注意时___zookeeper使用____数据结构,兼顾_____和_____ 的特点4种节点类型:持______,临______,______顺序,______顺序节点大小限制_____M;顺序号由_________维护监听器原理:使用______,一个______,另一个________ZBA协议:是___________协议,两种工作模式:______播,______复ZBA协议的选举机制:_________,_______的权重最高,其次是__________写流程:收到请求后由______广播写请求;各节点_____,若同意则______;leader统计,超半数则______在写流程时,若flower不同意,则会______,原因:___________在shell中,查看节点的命令是_____,数据的增删查改命令是__________如何使用Java API操作zookeeper?

http://chatgpt.dhexx.cn/article/3oHIXWeq.shtml

相关文章

Redission和Zookeeper分别实现分布式锁

Redission和Zookeeper分别实现分布式锁(windows) 1、Redission实现分布式事务 1.1 前提准备 下载好nginx(windows版本)下载好Jmeter(模仿高并发)下载好redis(windows版) 1.2 代码…

Zookeeper 客户端之基本操作指令

ZooKeeper命令行工具类似于Linux的shell环境,不过功能肯定不及shell啦,但是使用它我们可以简单的对ZooKeeper进行访问,数据创建,数据修改等操作. 命令行工具的一些简单操作如下: zkCli.sh客户端连接命令 ls 与 ls2 命…

kafka内置zookeeper启动失败报错INFO ZooKeeper audit is disabled. (org.apache.zookeeper.audit.ZKAuditProvider)

kafka内置zookeeper启动失败报错INFO ZooKeeper audit is disabled.(org.apache.zookeeper.audit.ZKAuditProvider)2022年新版win10安装kafka 安装配置kafka,在启动zookeeper时报错ZooKeeper audit is disabled 原因分析: 寻找资料发现是zookeeper设置参…

zookeeper日志及快照清理操作

事务日志可视化转换 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #!/bin/sh # scriptname: zkLog2txt.sh # zookeeper事务日志为二进制格式,使用LogFormatter方法转换为可阅读的日志 if [ -z "$1" -o "$1" "-h&quo…

【RPC】注册中心实现方案之ZooKeeper

文章目录 ZooKeeper一致性协议:ZAB ZooKeeper ZooKeeper是一个开源的分布式协调服务,它可以用来协调和同步多服务器之间的状态。 ZooKeeper 可以作为微服务架构中注册中心的选型,它最需要被关心的也是数据模型和一致性协议。数据模型关乎服…

Linux 搭建zookpeer集群和配置

zookpeer和JDK1.8下载地址 下载地址:zookpeer和jdk1.8 提取码:w189 解压以及配置zookpeer tar -zxvf zookeeper-3.4.6.tar.gz tar -zxvf jdk-8u144-linux-x64.tar.gz 基本参数配置 参数描述clientPort主要定义客户端连接zookeeper server的端口&…

hadoop-zookeeper的详细介绍以及安装配置步骤

一、zookeeper的介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、…

k8s-7: kafka+zookeeper的单节点与集群的持久化

之前在k8s环境中有这个需求&#xff0c;看了好多的文档&#xff0c;都有坑&#xff0c;踩了一边总结一下&#xff0c;需要的朋友可自取 一、单节点部署 建议开发环境使用&#xff0c;且此处采用动态挂载的&#xff0c;生产不建议 1、安装zk cat > zk.yaml <<EOF a…

Docker 安装Zookeeper

第一步&#xff1a;查看本地镜像和检索拉取Zookeeper 镜像 # 查看本地镜像 docker images # 检索ZooKeeper 镜像 docker search zookeeper # 拉取ZooKeeper镜像最新版本 docker pull zookeeper:latest [rootlocalhost ~]# docker images REPOSITORY TAG …

mac pro m1:搭建zookeeper集群并设置开机自启

0. 引言 之前我们讲解过搭建zookeeper单节点&#xff0c;但在实际生产中&#xff0c;为了保证服务高可用&#xff0c;通常我们是采用集群模式。所以本次我们来实操集群模式的搭建 1. zk集群模式 zk可以作为注册中心和配置中心&#xff0c;常用在微服务各类组件的多节点服务治…

一款实用的数据恢复软件—zook data recovery wizard

zook data recovery wizard是RecoveryTools下的一款子品牌&#xff0c;同时也是一款功能实用的数据恢复软件&#xff0c;该软件可以从Windows中恢复已删除&#xff0c;损坏&#xff0c;格式化和丢失的数据&#xff0c;能够支持从驱动器&#xff0c;SD卡&#xff0c;硬盘&#x…

zook 报错 Unable to read additional data from server sessionid 0x0

zook报错启动报错&#xff1a; 2017-09-25 18:33:46,913 - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread1183] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting r…

hadoop大数据集群搭设(hadoop+zook+HBase+hive)百分百成功

hadoop大数据集群搭设 前言所需软件虚拟机准备工作一、Jdk安装二、安装zookeeper三、HBase安装四、mysql安装配置五、安装hive 前言 经过长时间的测试总结出在目前集群搭建最稳定的步骤是&#xff1a; 至少我按这个过程基本0失误&#xff0c;且初始化次数最少。当然也可以尝试…

zookeeper客户端命令(三)

zookeeper客户端命令&#xff08;三&#xff09; 问题背景zookeeper分布式技术基本概念&#xff08;一&#xff09;zookeeper单机及集群部署&#xff0c;附安装包下载&#xff08;二&#xff09;zookeeper客户端命令&#xff08;三&#xff09; zook客户端指令节点创建测试集群…

Zookper集群搭建

&#x1f345;程序员小王的博客&#xff1a;程序员小王的博客 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 如有编辑错误联系作者&#xff0c;如果有比较好的文章欢迎分享给我&#xff0c;我会取其精华去其糟粕 一、搭建zookper集群前的准备…

分布式系统服务框架Zookeeper介绍与原理实现

分布式数据管理之痛点 为了确保微服务之间松耦合&#xff0c;每个服务都有自己的数据库, 有的是关系型数据库&#xff08;SQL&#xff09;&#xff0c;有的是非关系型数据库&#xff08;NoSQL&#xff09;。 开发企业事务往往牵涉到多个服务&#xff0c;要想做到多个服务数据…

给视频加滚动字幕,给视频加字幕制作mv 录制的视频配背景音乐

给视频添加滚动字幕方法其实很简单&#xff0c;像我们下载的电影&#xff0c;歌曲&#xff0c;用手机录制的视频都可以加字幕&#xff0c;或者滚动字幕&#xff0c;也可以加背景音乐或其它声音&#xff0c;给视频开头或结尾加一张图片或多张图片等等都是可以实现的&#xff0c;…

手把手叫你制作一个精美的在线音乐播放器

最近项目中要增加一些特殊的功能&#xff0c;实现音乐的在线播放。虽说网上源码一大把&#xff0c;demo一大堆&#xff0c;但是能用的其实寥寥无几&#xff0c;看来关键时刻还是自己动手&#xff0c;丰衣足食啊。话不多说&#xff0c;直接看效果图吧&#xff1a; 看是不是很美观…

微信小程序中将图片与音乐制作成MV

最近一直在开发一个类似于小年糕的微信小程序&#xff0c;在开发制作MV功能时 &#xff0c;花费了一些心思&#xff0c;其间主要遇到了以下一些问题点&#xff1a; 1. 上传图片的动画效果如何像播放视频一样实现播放与暂停&#xff1f; 2. 用户上传的图片数量不确定&#xf…

FL Studio中文版21最新免费音乐编曲软件制作工具

FL Studio较为适合专业的音乐制作者&#xff0c;操作难度较大&#xff0c;学习门槛也较高&#xff1b;Studio One则主打一站式的音乐制作&#xff0c;从编曲到录音到后期的专辑制作都可以在其中实现&#xff0c;同时操作难度不大&#xff0c;对初学者和业余爱好者都较为友好。 …