Zookeeper的入门

Hadoop、mapreduce、Zookeeper 谈谈什么是Hadoop? Hadoop是一个开源软件框架,用于存储大量数据,并发计算/查询节点的集群上的数据。 Hadoop包括以下内容:   HDFS(Hadoop Distributed File System):Hadoop分布式文件存储系统。   MapReduce:分布式计算框架。它以分布式和并行的方式处理大量的数据。   YARN(资源定位器):用于管理和调度集群资源的框架。 MapReducer核心思想 1)分布式的运算程序往往需要分成至少2个阶段。 2)第一个阶段的MapTask并发实例,完 阅读详情

1 Zookeeper的基本概述
Zookeeper是一个高性能,开源分布式应用协调的服务,保证分布式系统高效,稳定的运行。它提供了简单原始的功能,分布式应用可以基于它实现更高级 的服务,比如同步,配置管理,集群管理,名空间。

如下:如果所有学生都要吃饭,那么一个食堂是不能同时容纳多个班级的学生的,此时,学校的领导机构可以按一定的决策来分配学生的进餐时间,这里学校领导协调机构,就是我们所说的Zookeeper.

Zookeeper本身具有集群功能,本身也是一个分布式程序(只需要节点存活过半数即可).

为了保证机构运行的可靠性(不容易散掉或者不干),我们给机构分配了多个成员。而成员中必须有个领导者用来做主要的决策,称之为leader,其他普通成员称之为follower.

2 Zookeeper的应用场景
2.1 主节点选取
在分布式系统中,为了保证主服务器的稳定性,部署了多台备用机器,当主机挂掉后,需要通过决策来选举一台新的主机,

2.2 分布式共享锁
分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。

如下多个业务模块共享同一的交易数据接口,各个模块分布在不同的机器中,需要通过Zookeeper来决定由哪个模块先执行请求。

上面的案例中,Zookeeper主要通过协调各个机器之间的冲突来达到顺利完成分布式系统中各个子机有序的完成任务,而Zookeeper内部则提供了如下服务:

为用户程序提供数据的存储


对文件结构/节点 的监听。

3 zookeeper的安装
zookeeper的安装对机器有一定的软件要求,每台机器必须具备如下要求:

测试的话我们需要自己去创建虚拟机。

每台机器必须相互ping通,并且能够连接外网。

安装java环境。

配置scp命令。

克隆2台新虚拟机并配置网络。

安装Zookeeper服务。

​

3.1 创建虚拟机
创建第一台虚拟机,为虚拟机配置主机名。如下:

[root@mini3 bin]#  vi /etc/sysconfig/network
##配置自己的主机名和网关
NETWORKING=yes
HOSTNAME=mini1
GATEWAY=192.168.7.1
##配置自己的主机名和网关-完

[root@mini3 bin]#  reboot

重新配置网络,这里我使用了桥接模式配置,接着在linux内部配置静态IP:

[root@mini3 bin]#  vi /etc/sysconfig/network-scripts/ifcfg-eth0 
##配置自己的网卡
DEVICE=eth0 ##网卡是eth0
TYPE=Ethernet
ONBOOT=yes   ##开机启动
NM_CONTROLLED=yes
BOOTPROTO=static ##配置静态IP
IPADDR=192.168.7.104    ##IP号码
NETMASK=255.255.255.0 ##子网掩码
GATEWAY=192.168.7.1 ##网关配置
##配置自己的网卡-完

[root@mini3 bin]# service network restart

[root@mini3 bin]# ping www.baidu.com

如果使用的是mini版linux,并且ping不通外网,可以使用如下配置:

[root@mini3 bin]# cd /etc/sysconfig/network-scripts
[root@mini3 bin]# touch route-eth0 

添加你要配置的网关内容 via 192.168.7.1

[root@mini3 bin]#  reboot
[root@mini3 bin]# ping www.baidu.com

3.2 安装java环境
因为zookeeper是需要java运行环境的,需要先安装好java环境:

上传jdk压缩包,通过sftp工具上传即可

解压jdk压缩包

tar -zxvf jdk-7u67-linux-x64.gz -C /usr/local/

修改环境变量PATH

vi /etc/profile


## 在文件最后加两行:

export JAVA_HOME=/usr/local/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin

3.3 配置SSH
这里配置openssh-client主要是用来对集群内部不同的机器进行数据传输用的。

yum install openssh-clients
1
3.4 克隆2台新虚拟机并配置网络
上面的操作是每台机器都需要的,于是我们又重新克隆了两台虚拟机,但是新的虚拟机如果不做修改是还是无法集群。修改如下:

修改Hotstname.参考上面的操作。

修改IP地址,参考上面,记得不要填写物理地址和UUID.

由于克隆后的网卡配置有问题,这里需要先修改网卡信息:

vi /etc/udev/rules.d/70-persistent-net.rules

1.将eth0的网卡删除
2.将eth1该名为eth0

重新启动虚拟机。

3.5 安装zookeeper服务
上传安装包到linux中。

解压zookeeper并删除压缩包。(-C 输出到指定目录)

tar -zxvf zookeeper-3.4.5.tar.gz -C apps/    
rm -f zookeeper-3.4.5.tar.gz

删除没用到的源代码,剩下如下目录:

[root@mini3 ~]# cd /root/apps/zookeeper-3.4.5/
[root@mini3 zookeeper-3.4.5]# ll
total 1300
drwxr-xr-x. 2 root root    4096 May  9 23:36 bin
drwxr-xr-x. 2 root root    4096 May  9 23:25 conf
drwxr-xr-x. 4 root root    4096 May  9 23:21 lib
-rw-r--r--. 1 root root 1315806 May  9 23:21 zookeeper-3.4.5.jar

bin : 执行服务端/客户端的命令工具

conf:配置文件,修改zoom_sample.cfg===>zoom.cfg

lib:到时候写java代码会用到

zookeeper-3.4.5.jar: 核心开发包。

打开zoom.cfg:


# ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。

tickTime=2000

# Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在initLimit时间内完成这个工作。通常情况下,我们不用太在意这个参数的设置。如果ZK集群的数据量确实很大了,F在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了。

initLimit=10

# 在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。

syncLimit=5

# ZK集群内部的数据一般存储在内存中,而该目录是存储内存快照的目录。默认情况下,事务日志也会存储在这里。

dataDir=/root/zkdata

# 连接ZK客户端的端口号

clientPort=2181


# 给集群的机器配置编号 1 2 3 (当然这里可以随便写数字)  它映射到/root/zkdata/myid文件


# 2888端口号是领导者用来监听跟随者连接。 3888端口是用来在选举领导者阶段, 用来监听其他服务器的连接. 

server.1=192.168.7.102:2888:3888
server.2=192.168.7.103:2888:3888
server.3=192.168.7.104:2888:3888

通过scp命令将软件发给另外两台虚拟机。

scp -r sourcePath destPath
1
为每个虚拟机环境添加/root/zkdata文件夹。并在文件夹内使用命令:

echo 编号 > myid
1
4 zookeeper服务启动
启动zookeeper


# 启动zkServer

[root@mini3 bin]# /app/zookeeper-3.4.5/bin/zkServer.sh start
JMX enabled by default
Using config: /app/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

#jps 查看java进程 QuorumPeerMain 是代表zkServer的进程

[root@mini3 bin]# jps
1896 QuorumPeerMain
1913 Jps

服务的信息保存在当前文件夹中的zookeeper.out文件中。在zk集群内部有2种角色follower和leader.

[root@mini3 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower

上面我们通过手动为每一台机器启动服务。如果有100台的话,就需要通过创建脚本的方式来运行脚本来实现了:


#!/bin/bash

for host in 192.168.7.102 192.168.7.103 192.168.7.104
do
ssh $host "source /etc/profile;/root/apps/zookeeper-3.4.5/bin/zkServer.sh start"
done

5 zookeeper的结构
5.1 zookeeper的特点
一个zookeeper集群是由一个leader,多个follower组成的高可靠的分布式程序.
全局数据一致,每个服务器中的数据都是相同的副本,无论连接那个服务器都是一样的数据
分布式读写数据具有实时性。在一定时间范围内,客户端可以读取到最新数据
数据更新的原子性,对于一次更新操作,要么成功,要么失败
5.2 zookeeper的集群机制
zookeeper集群需要在配置文件zoo.cnf中进行相应的配置,使用的半数节点在线即可保证正常提供服务
对于奇数个zookeeper服务器和偶数个服务器的节点状态是一样的
5.3 zookeeper的数据结构
对于zookeeper中的数据存储以目录节点和具体的数据组成

对于所有的目录节点是以树状结构组成,访问每个节点都必须以绝对路径进行访问(/开头)

对于每个节点都可以存放一个对应的数据

对于每个节点都有一个父节点和可以有多个子节点(但是对于EPHEMERAL短暂性的节点不允许有子节点)

客户端可以在zookeeper的节点上设置监视器,如果节点的数据发生改变,会通知客户端执行指定的操作

存储的数据不允许存储超过1M的数据文件,一般都是1k大小的文件的存储,保证每个节点的数据都是实时的数据(200ms内)

数据节点类型
对于zkServer中的节点数据,主要有两种类型的Znode

短暂性(ephemeral) 在客户端断开连接是会自动删除该节点
持久性(persistent) 数据会一直存储在zkServer中,知道调用删除命令进行删除
根据业务的需要,有可能对于一个节点下的所有的子节点都是按照指定名称+顺序号的方式去生成,

所以对于目录的生成方式,一共有四种

EPHEMERAL 短暂性的节点, 客户端退出会自动删除该节点 /sub
EPHEMERAL_SEQUENTIAL 短暂性的序列节点,在生成节点的时候会自动添加一串序号,保存了节点名称的不会重复 /sub0000000000
PERSISTENT 持久性的节点,
PERSISTENT_SEQUENTIAL 持久性的序列节点
什么情况使用短暂性节点,什么情况使用持久性节点呢?

如果在客户端退出后需要还保存的节点,我们需要设置为持久性的节点

如果一个节点在客户端异常退出或者说需要在客户端断开连接就需要删除的节点,我们可以使用短暂性的节点

​

6 客户端操作
客户端连接

# 客户端连接命令, -server指定连接服务器 如果不写的话默认连接本地localhost, 
# 192.168.7.102 主机名
# 2181 客户端连接地址,在zoo.cnf中配置 如果不写,默认连接2181端口
[root@mini3 bin]# /app/zookeeper-3.4.5/bin/zkCli.sh -server 192.168.7.102:2181

在zk 客户端中执行 help 查看帮助说明

[zk: 192.168.7.102:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
    # 查看某个路径的基本信息,
    stat path [watch]
    # 给某个节点设置数据信息
    set path data [version]
    # 查看某个路径下面的子节点列表
    ls path [watch]
    delquota [-n|-b] path
    # 显示子节点信息,并且会显示当前节点的状态信息
    ls2 path [watch]
    setAcl path acl
    setquota -n|-b val path
    # 显示历史记录
    history 
    # 重新执行命令
    redo cmdno
    printwatches on|off
    # 删除节点,被删除的节点必须是空节点,不能有子节点,可以有数据
    delete path [version]
    sync path
    listquota path
    # 删除节点
    rmr path
    # 获取节点信息和内容
    get path [watch]
    # 创建节点信息 -s 创建序列节点 -e 创建短暂性节点
    create [-s] [-e] path data acl
    addauth scheme auth
    # 退出客户端
    quit 
    getAcl path
    # 关闭连接
    close 
    # 连接服务端
    connect host:port

客户端命令练习

# 列出主目录下所有子节点
[zk: 192.168.7.102:2181(CONNECTED) 2] ls /
[zookeeper]
# 创建/oldboys节点,同时指定该节点存放null数据,也可以存放其他数据
[zk: 192.168.7.102:2181(CONNECTED) 3] create /oldboys null
Created /oldboys
# 创建子节点huangbo,并且该节点设置的数据为38
[zk: 192.168.7.102:2181(CONNECTED) 4] create /oldboys/huangbo 38
Created /oldboys/huangbo
# 显示/目录下的所有子节点
[zk: 192.168.7.102:2181(CONNECTED) 5] ls /
[oldboys, zookeeper]


# 显示/oldboys目录下的所有子节点
[zk: 192.168.7.102:2181(CONNECTED) 6] ls /oldboys
[huangbo]
# 获取/oldboys/huangbo节点存放的数据
[zk: 192.168.7.102:2181(CONNECTED) 7] get /oldboys/huangbo
38
cZxid = 0x200000022  # 节点的创建时间所对应的Zxid格式时间戳
ctime = Sat May 05 02:06:33 CST 2018  # 节点创建时间
mZxid = 0x200000022  # 节点的修改时间所对应的Zxid格式时间戳
mtime = Sat May 05 02:06:33 CST 2018  # 节点的修改时间
pZxid = 0x200000022  # 节点的最新修改时间戳
cversion = 0 # 子节点的版本号
dataVersion = 0 # 数据的版本号
aclVersion = 0 # 访问权限控制版本
ephemeralOwner = 0x0 # 如果是短暂性节点,该值为这个节点拥有者的会话ID,否则为0
dataLength = 2 # 存放的数据长度
numChildren = 0 # 所有的子节点的个数

# 修改数据
[zk: 192.168.7.102:2181(CONNECTED) 8] set /oldboys/huangbo 34
cZxid = 0x200000022
ctime = Sat May 05 02:06:33 CST 2018
mZxid = 0x200000023
mtime = Sat May 05 02:07:14 CST 2018
pZxid = 0x200000022
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0

# 删除子节点, 被删除的节点必须是空节点
[zk: 192.168.7.102:2181(CONNECTED) 10] delete /oldboys/huangbo
[zk: 192.168.7.102:2181(CONNECTED) 11] ls /oldboys 

7 Java操作zookeeper
package cn.wolfcode.bigdata.api;

import org.apache.zookeeper.*;
import org.junit.Before;
import org.junit.Test;

import java.util.concurrent.CountDownLatch;

public class ZkClientDemo {
//    设置连接超时时间
    public static  final int SESSION_TIME_OUT =3000;
//    设置连接的主机地址 多个zkServer使用逗号隔开
    public static  final String CONNECT_STRING="192.168.7.102:2181,192.168.7.103:2181,192.168.7.104:2181";
//    zk客户端连接会话对象zkClient
    private ZooKeeper zkClient;
//    设置程序的等待运行,知道数量变为0
    private CountDownLatch latch=new CountDownLatch(1);

    @Before
    public void init() throws Exception{
//      初始化客户端连接对象zkClient
        zkClient=new ZooKeeper(CONNECT_STRING, SESSION_TIME_OUT, new Watcher() {
            @Override
            public void process(WatchedEvent event) {
                // 判断当前的状态为连接状态的时候,把latch的count设置为0,让程序继续运行
                if(latch.getCount()>0 && event.getState() == Event.KeeperState.SyncConnected){
                    latch.countDown();
                }
                //判断节点的数据改变事件,并且是/servers节点的数据改变
                if(event.getType()==Event.EventType.NodeDataChanged && "/servers".equals(event.getPath())){
                    System.out.println(event.getPath());
                    try {
                        byte[] data = zkClient.getData("/servers",true,null);
                        System.out.println("更新后的数据为:"+new String(data));
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }
        });
        //等待latch.getCount()的值变为0
        latch.await();
    }

    /**
     * znode节点的创建
     * @throws Exception
     */
    @Test
    public void create() throws Exception{
        //创建一个持久化的一个节点,在客户端退出后数据会清空
        // 第一个参数: 创建的节点路径,必须是绝对路径,以/开头
        // 第二个参宿: 对应的节点的数据类型,传入的是字节数组对象的数据,可以是null
        // 第三个参数: 设置创建节点的访问权限,通常情况都是放开权限 使用OPEN_ACL_UNSAFE
        // 第四个参数: 设置节点的类型,可以是短暂的,持久的, 短暂+序列,持久+序列
        zkClient.create("/servers","wolf".getBytes("UTF-8"),ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);

    }

    /**
     * 给节点设置数据(修改节点的数据)
     * @throws Exception
     */
    @Test
    public void setData() throws Exception{
//      修改节点的数据,在修改的时候需要指定节点数据的版本号,必须和dataVersion的版本一致,如果不一致,则会导致报错
//      指定为-1表示修改最后一个版本的节点
        zkClient.setData("/servers","wolfcode".getBytes("UTF-8"),-1);
    }

    /**
     * 修改数据
     */
    @Test
    public void getData() throws Exception{
        //获取节点数据
        // 第一个参数: 节点路径
        // 第二个参数: 设是否使用原来绑定好的模拟器
        // 第三个参数 stat状态信息(节点元数据封装  传入null表示默认)
        byte[] data = zkClient.getData("/servers", false, null);
        System.out.println(new String(data,"utf-8"));
    }
    @Test
    public void getDataWithWatch() throws Exception{
        // watch:true,表示使用zkClient中已有的事件监听设置
        byte[] data = zkClient.getData("/servers", true,null);
        System.out.println(new String(data,"utf-8"));
        Thread.sleep(Long.MAX_VALUE);
    }
    /**
     * 删除节点
     */
    @Test
    public void delZNode() throws Exception{
        // 删除的节点不能有子节点
        // 删除需要指定对应的节点版本信息,如果不需要版本信息,设置为-1 和dataVersion版本信息相对应
        zkClient.delete("/servers",2);
    }
}
--------------------- 
作者:CoderLean 
来源:优快云 
原文:https://blog.youkuaiyun.com/qq285016127/article/details/80271672 

Zookeeper入门 Zookeeper是一个分布式协调服务框架,用于管理分布式系统中的配置信息、命名服务、分布式锁、集群管理等。 阅读详情

相关推荐

ZooKeeper使用入门

ZooKeeper简介 ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是Hadoop的子项目之一。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 安装ZooKeeper 操作系统要求 操作系统 客户端 服务端 原生客户端 附加组件 GNU/Linux 开发/生产 开发/生产 开发/生产 开发/生产 Solaris 开发/生产 开发/生产 不支持 不支持 FreeBSD 开发/生产 开发/生产 不支持 不支持

匠心工坊 694

zookeeper

第一次选举:比较服务器节点大的myid,谁大谁会获取myid比它小的服务器节点的选票,当选举超过节点数量半数则该节点选举为leader,其他几点为follower,就算以后有其他myid更大的急待你加入到集群,也不会应该之前的选举结果。zookeeper数据模型的结构与linux文件系统相似,整体上可以看作是一颗树,每棵树是一个znode,每个znode默认能存储1mb的数据,每个咋弄的都可以通过其路径唯一标识。若epoch下个南通,则比较zxid(写操作的事务id),选取zxid最大的当leader。

m0_61417337的博客 7355

ZooKeeper入门学习

什么是 ZooKeeper:ZooKeeper 是一个分布式应用协调服务,提供高性能、高可用和严格有序的服务。配置管理:集中管理配置信息,简化分布式系统中的配置管理。分布式同步:提供分布式锁和同步机制,解决分布式系统中的一致性问题。命名服务:提供分布式系统中的命名和位置服务。

qq_44011926的博客 757

Zookeeper的安装与使用

ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。ZooKeeper 是 Apache 软件基金会的一个开源软件项目,是 Google的 Chubby 一个开源的实现,是Hadoop和Hbase的重要组件。1. Zookeeper 功能Zookeeper 是一个为分布式应用提供一致性

loveyelong的博客 6560

Zookeeper介绍

一、概述 Zookeeper 是一个开源的、分布式的,为分布式应用提供协调服务的 Apache 项目。 二、特点 1、zookeeper 中是由一个领导者(Leader)、多个跟随者(Follower)组成的集群。 2、集群中只要有半数以上节点存活,zookeeper 集群就能正常服务。 3、全局数据一致:每个 Server 保存一份相同的数据副本,Client 无论连接到哪个 Server,数据都是一致的。 4、更新请求顺序进行,来自同一个 Client 的更新请求按其发送顺序依次执行。 5、数据更新原子性,一次数据更新要么成功,要么失败。 6、实时性,在一定时间范围内,Client 能读

人工智能(AI)简史:推动新时代的科技力量

人工智能(AI,Artificial Intelligence)是计算机科学的一个分支,旨在研究和开发可以模拟、扩展或增强人类智能的系统。它涉及多种技术和方法,包括机器学习、深度学习、自然语言处理(NLP)、计算机视觉、专家系统等。

qq_17153885的博客 1万+

ZoomKeeper学习笔记

https://mp-blog.youkuaiyun.com/mp_blog/img/add-tag.49c4e589.png

gardenias_Lily 4682

python电子学会三级的零碎笔记

‌示例‌:如果s = ['a', 'b', 'c'],则' '.join(s)+'\n'的结果是'a b c\n',写入文件时所有元素会在一行内显示,每个元素之间用空格分隔,末尾有一个换行符。(2) '\n'.join(s)‌:如果s = ['a', 'b', 'c'],则'\n'.join(s)的结果是'a\nb\nc',写入文件时每个元素会占据文件的一行。(1) ' '.join(s)+'\n'‌:这种方式首先将列表s中的每个元素通过空格连接成一个字符串,然后在字符串末尾添加一个换行符\n。

xzal12的博客 690

ZooKeeper入门指南

  ZooKeeper入门指南   目录: 入门:使用ZooKeeper协调分布式应用程序 先决条件 下载 独立操作 管理ZooKeeper存储 连接到ZooKeeper 编程到ZooKeeper 运行复制的ZooKeeper 其他优化   入门:使用ZooKeeper协调分布式应用程序 本文档包含有助于您快速使用ZooKeeper的信息。它主要...

YunWisdom 469

上网第二课:办了百兆宽带,为什么测速只有一半?

最慢的那一环。

qq_36765170的博客 110

3D Slicer:从入门到精通(二)——入门指南

本篇文章包含开始使用3D Slicer所需的信息,包括如何安装和快速开始使用基本功能,以及在哪里找到更多信息。

walt3433的博客 2万+

Zookeeper入门介绍

Zookeeper入门介绍

hfbin的博客 3468

Silvaco TCAD仿真例库——肖特基二极管反向击穿特性(案例)

本文详细介绍了使用Silvaco TCAD仿真例库分析肖特基二极管反向击穿特性的完整流程。通过搭建带保护环的器件结构,配置关键物理模型,并执行反向偏压扫描,深入探讨了雪崩击穿机制、电场分布及设计参数(如漂移区浓度、保护环)对击穿电压的影响,为功率半导体设计与可靠性分析提供了实用的虚拟实验方法。

weixin_29165465的博客 389

zookeeper快速入门一:zookeeper安装与启动

本文是《zookeeper你想要的全都有系列》之快速入门中的第一篇,欢迎大家观看与指出不足。 写在前面: 不影响教程,笔者安装zookeeper用的是WSL(windows下的linux子系统),当然你想直接在windows上用zookeeper也是可以的。 如果你也想用wsl,可以参考这篇文章Windows10安装Linux系统(WSL) 目录 一、zookeeper下载 二、安装zookeeper 三、linux下启动zookeeper 四、windows下启动zookeeper 进入

马不腾的博客 4万+

CasADi - 最优控制开源 Python/MATLAB 库

CasADi 是一款开源软件工具,用于数值优化,特别是最优控制(即涉及微分方程的优化)。该项目由 Joel Andersson 和 Joris Gillis 在鲁汶工程大学工程优化中心 (OPTEC) 在读博士生在 Moritz Diehl 的指导下发起。本文档旨在简要介绍 CasADi。

机器人控制与仿真应用 7935

AI赋能数字人:打造与语音节奏完美匹配的高质量手势动画

想象一个场景:当你与一位数字人交谈时,它不仅能理解你的言语,还能恰到好处地挥动手臂、比划手势,就像真实的人类交流一样自然流畅。这正是当前AI技术致力于实现的目标——通过分析语音内容,自动生成与之相匹配的手势动作,为数字人赋予更加丰富的情感表达和非言语沟通能力。AI手势生成技术的出现,标志着数字人在模仿人类自然交流方式上迈出了重要一步。随着技术的不断成熟与应用场景的拓宽,未来我们可以期待更多富有表现力和情感互动的数字人出现在我们的日常生活中,开启人机交互的新篇章。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 793

2.Zookeeper入门

简介:Apache Zookeeper是一种用于分布式应用程序的功性能协调服务。提供一种集中式信息存储服务。特点:数据存在内存中,类似文件系统的属性结构(文件和目录),高吞吐量和低延迟,集群高可靠。作用:基于Zookeeper可以实现分布式统一配置中心、服务注册中心、分布式锁等功能的实现;

RubyWinner的博客 1773

54、生物神经网络建模全解析

本文系统解析了生物神经网络的建模方法,涵盖从单个神经元到神经网络的多个时空尺度。首先介绍神经元层面的生物物理模型(如霍奇金-赫胥黎模型和多隔室模型)与多种简化模型(如菲茨休-纳古莫、莫里斯-勒卡尔、积分发放模型等),并分析其适用场景。随后探讨突触层面的信号传递机制,对比电突触与化学突触在结构、传输速度和方向上的差异,阐述其在神经网络建模中的理论意义。文章旨在为理解神经系统的信息处理机制、构建受生物启发的人工智能模型提供理论基础。

app77的博客 76

zookeeper快速入门

ZooKeeper 是 Apache 开发的分布式协调服务,用于管理大型分布式系统的配置、同步和命名等任务。它通过一个类似文件系统的层次结构存储数据,每个节点(znode)可存储少量信息并支持数据变更监听。ZooKeeper 支持高可用性和高并发访问,提供了命名服务、配置管理、集群管理、锁服务和队列管理等功能,广泛应用于 Hadoop、Kafka 等分布式系统中,帮助开发者简化分布式应用的开发与维护。

执笔写JAVA 1387

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【ZooKeeper快速入门】 —— 每天一点小知识

🐬ZooKeeper是一个分布式协调服务,可以用于构建可靠的分布式系统。它提供了一组简单而强大的API,用于实现分布式应用程序的一致性和可靠性。

仰望天空,妳我亦是行人. 1279

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Zookeeper入门教程

一、Zookeeper 入门 1.1 概述 Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。 Zookeeper工作机制 1.2 Zookeeper特点 1.3 数据结构 ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,每个ZNode 都可以通过其路径唯一标识。 1.4 应用场景 提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服

cosuyo的博客 2421

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Zookeeper从零入门笔记

统一命名服务:nginx也可以实现 统一配置管理: 统一集群管理: 服务器动态上下线: 软负载均衡: 遇到问题:1防火墙未关闭,2配置错误 sudo systemctl stop firewalld 加到zok.conf中: 3.2 选举机制 1. 第一次启动 3.4 客户端命令行操作 3.2.1 命令行语法 临时节点:退出客户端以后删除 有序节点:可重复,key后自带序号 3.2.4 监听器原理 分为两种情况: 1、请求发送给Leader节点;2、请求发送给Follower节点;

u011005040的博客 1310

zookeeper从入门到精通

ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,后成为 Apache 的顶级项目。它为分布式应用提供了高效、可靠的协调服务,例如统一命名服务、配置管理、分布式锁、集群管理等。ZooKeeper 的数据模型类似文件系统,以树形结构存储数据,每个节点称为 Znode,每个 Znode 可以存储数据和子节点。

weixin_44821805的博客 2188
上一篇: SpringCloud系列七:Hystrix 熔断机制(Hystrix基本配置、服务降级、HystrixDashboard服务监控、Turbine聚合监控)
下一篇: Mybatis Generator最完整配置详解
achuo
博客等级 码龄18年 491粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值