Zookeeper服务器集群的搭建与操作

ZooKeeper

作用:Zookeeper 可以用来保证数据在zk集群之间的数据的事务性一致(原子操作)。

介绍:Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务。

    它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。

特性:简单的、富有表现力的、具有高可用性、采用松耦合交互方式、是一个资源库。

如何搭建ZooKeeper服务器集群
2.1 ZooKeeper服务器集群规模不小于3个节点,要求各服务器之间系统时间要保持一致。
2.2 在hadoop0的/usr/local目录下,解压缩zookeeper-3.4.5.tar.gz(tar -zxvf zookeeper-3.4.5.tar.gz),
  设置环境变量vi /etc/profile
    export ZOOKEEPER_HOME=/usr/local/zk
    export PATH=.:$....:$ZOOKEEPER_HOME/bin:$.....
  环境变量设置好了,执行source /etc/profile
2.3 在conf目录下
    重命名: mv zoo_sample.cfg zoo.cfg
2.4 编辑该文件,执行vi zoo.cfg
    修改dataDir=/usr/local/zk/data
    新增server.0=hadoop0:2888:3888
      server.1=hadoop1:2888:3888
      server.2=hadoop2:2888:3888
2.5 创建文件夹mkdir /usr/local/zk/data
2.6 在data目录下,创建文件myid(vi myid),值为0
2.7 把zk目录复制到hadoop1和hadoop2中
      scp -r /usr/local/zk/ hadoop1:/usr/local/
      scp -r /usr/local/zk/ hadoop2:/usr/local/
  将hadoop0中的环境变量复制到hadoop1和hadoop2中
      scp /etc/profile hadoop1:/etc/
      scp /etc/profile hadoop2:/etc/
  环境变量复制好了以后,在hadoop1和hadoop2上都要执行source /etc/profile
2.8 把hadoop1中相应的myid的值改为1
    vi /usr/local/zk/data/myid 将里面的值改为1
  把hadoop2中相应的myid的值改为2
    vi /usr/local/zk/data/myid 将里面的值改为2
2.9 启动,在三个节点上分别执行命令zkServer.sh start
cd /usr/local/zk/bin
ls
zkServer.sh start
启动完了之后,在bin目录下多了一个zookeeper.out
2.10 检验,在三个节点上分别执行命令zkServer.sh status(可以看到MODE,谁是leader,谁是follower)

ZooKeeper的操作(只有shell操作,也可以用java操作)
在hadoop0下,执行zkCli.sh ,就进入到了ZooKeeper,可以在里面使用命令进行相关操作:
ls /
create /chaoren hadoop (/chaoren是path,hadoop是里面的data)
get /chaoren (可以查看到里面的data)

也可以在hadoop1或hadoop2里面:
zkCli.sh
get /chaoren
也可以修改里面的data:
set /chaoren change_data (将chaoren里面的data修改为change_data)
get /chaoren

ZooKeeper的数据模型

层次化的目录结构,命名符合常规文件系统规范

每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识

节点Znode可以包含数据和子节点,但是EPHEMERAL类型的节点不能有子节点

Znode中的数据可以有多个版本,比如某一个路径下存有多个数据版本,那么查询这个路径下的数据就需要带上版本

客户端应用可以在节点上设置监视器

节点不支持部分读写,而是一次性完整读写

Zookeeper的节点

Znode有两种类型,短暂的(ephemeral)和持久的(persistent)

Znode的类型在创建时确定并且之后不能再修改

短暂znode的客户端会话结束时,zookeeper会将该短暂znode删除,短暂znode不可以有子节点

持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除

Znode有四种形式的目录节点,PERSISTENT、PERSISTENT_SEQUENTIAL、EPHEMERAL、EPHEMERAL_SEQUENTIAL

Zookeeper的角色

领导者(leader),负责进行投票的发起和决议,更新系统状态

学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票

Observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度

客户端(client),请求发起方

时间: 2024-12-20 01:04:40

Zookeeper服务器集群的搭建与操作的相关文章

ssh+expect+scp实现服务器集群自动化搭建

之前介绍过ansible的使用,通过ssh授权批量控制服务器集群 但是生成密钥和分发公钥的时候都是需要确认密码的,这一步也是可以自动化的,利用ssh + expect + scp就可以实现,其实只用这几个命令结合也可以实现类似ansible的功能了 为了远程操作服务器进行环境初始化,总结我们都需要以下几步操作 1.ssh-keygen生成密钥对 2.将生成的公钥发送到node服务器 3.scp拷贝安装包到node服务器 4.ssh远程执行拷贝过去的安装包 下面进行集群环境初始化脚本的编写,通过s

ZooKeeper伪集群环境搭建

1.从官网下载程序包. 2.解压. [[email protected] software]$ tar xzvf zookeeper-3.4.6.tar.gz 3.进入zookeeper目录后创建data目录. [[email protected] software]$ cd zookeeper-3.4.6 [[email protected] software]$ mkdir data [[email protected] software]$ cd data [[email protecte

zookeeper以及集群的搭建

今天我来写一写zookeeper集群的搭建流程 1.zookeeper的搭建不难,难的是对他的理解以及良好的使用.单机版的zookeeper只需要解压后直接命令 启动即可 解压zookeeper,tar -zxvf zookeeper-3.4.6.tar.g 2.集群的话,需要复制文件 把单机版的zookeeper-3.4.6拷贝到/usr/local/solrcloud下,复制三份分别并将目录名改为zookeeper1.zookeeper2.zookeeper3 3.进入zookeeper1文

初始zookeeper与集群搭建实例

zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务,使得分布式应用可以基于这些接口实现诸如同步.配置维护和分集群或者命名的服务. zookeeper是一个由多个service组成的集群,一个leader,多个follower,每个server保存一份数据部分,全局数据一致,分布式读写,更新请求转发由leader实施. 更新请求顺序进行,来自同一个cl

zookeeper集群环境搭建详细图文教程

zookeeper集群环境搭建详细图文教程 zhoubang @ 2018-01-02 [文档大纲] 友情介绍 软件环境 注意点 环境安装 1. 新建用于存储安装包以及软件安装的目录 2. 下载安装zookeeper 3. 解压zookeeper压缩包 单节点zookeeper配置 1. 配置zoo.cfg文件 2. 配置zookeeper的数据存储目录 3. 新建myid文件 4. 配置zookeeper集群节点 5. 启动zookeeper服务 6. 检查zookeeper服务是否成功启动

zookeeper伪分布式集群环境搭建

step1.下载 下载地址:http://zookeeper.apache.org/releases.html 将下载的压缩包放到用户家目录下(其他目录也可以) step2.解压 [plain] view plain copy $tar –zxvf zookeeper-3.4.6.tar.gz 重命名 [plain] view plain copy $mv zookeeper-3.4.6 zookeeper step3.配置 进入zookeeper/conf/目录下,将改目录下的zoo_samp

负载与读写分离图片服务器集群模型

对于绝大多数网站,图片资源是一个非常重要的元素.社区论坛里面图片相册,电子商务线上产品展示图,移动端应用图片分享功能等.都在说互联网正在处于读图时代,各大中小型网站都需要保持良好的图片处理能力.需要支持海量图片资源存储时,更加要搭建高可用负载图片服务集群支撑网站系统,保证网站上图片相关功能准确无误运行,用户对象访问页面体验流畅. 环境:四台Linux主机,一台LVS负载均衡,一台FastDFS_tracker,两台FastDFS_storage,FastDFS_client在FastDFS_tr

zookeeper的集群安装

zookeeper是针对大型分布式系统的高可靠的协调系统.由此,我们可 知,zookeeper是个协调系统,它的作用对象是分布式系统.那么,为什么分 布式系统需要一个协调系统呢?原因如下: 开发分布式系统是件灰常困难复杂的事情,其中的困难主要体现在分布式 系统的"部分失败"."部分失败"是指信息在网络的两个节点之间传送的时 候,如果网络出现了故障,发送者无法知道接收者是否收到了这个信息,而且这 中故障的原因很复杂,接收者可能在出现网络错误之前已经接收到了信息,也可

Hadoop集群安装-CDH5(3台服务器集群)

CDH5包下载:http://archive.cloudera.com/cdh5/ 主机规划: IP Host 部署模块 进程 192.168.107.82 Hadoop-NN-01 NameNode ResourceManager NameNode DFSZKFailoverController ResourceManager 192.168.107.83 Hadoop-DN-01 Zookeeper-01 DataNode NodeManager Zookeeper DataNode Nod