`
wangyangqq2008
  • 浏览: 34500 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Zookeeper环境搭建及使用

 
阅读更多
1. Zookeeper了解
    Zookeeper有能力实现集中配置的能力,举个例子,应用app1 做集群配置,配置3个节点,把app1的配置统一放置zookeeper server /APP1上,所有的app1应用启动就对节点/APP1进行监控,并实现回调方法Watcher,那么在/APP1上数据发生变化的时候,每个app应用节点就会收到通知,Watcher方法被执行,则app1的应用就可以实时得到修改的配置。
Zookeeper 自身可以做集群配置,可以预防由于单点故障导致的信息崩溃问题。
Zookeeper 数据结构类似标准的文件系统
[img]

[/img]

Zookeeper数据结构有如下这些特点:
1. 每个子目录项如 NameService 都被称作为 znode,这个 znode 是被它所在的路径唯一标识,如 Server1 这个 znode 的标识为 /NameService/Server1
2. znode 可以有子节点目录,并且每个 znode 可以存储数据,注意 EPHEMERAL 类型的目录节点不能有子节点目录
3. znode 是有版本的,每个 znode 中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据
4. znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除,Zookeeper 的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个 session 失效,znode 也就删除了
5. znode 的目录名可以自动编号,如 App1 已经存在,再创建的话,将会自动命名为 App2
6. znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是 Zookeeper 的核心特性,Zookeeper 的很多功能都是基于这个特性实现的。


2. Zookeeper与redis比较
Zookeeper 不是一个通用的数据库或大型数据存储,而是管理协调数据,
结合软创系统的配置信息,配置信息量不会非常大,完全在可控范围内,同时需要稳定运行,消除单点宕机故障,读取速度不是太大的影响点,综上考虑采用zookeeper作为配置管理中心比较合适。

基于上面描述,使用zookeeper实现我们的配置中心是可行的

3. Zookeeper 安装及使用
3.1 安装(单机)
单机安装非常简单,具体步骤如下:
1. 使用zookeeper3.3.6版本,解压zookeeper-3.3.6.tar.gz至本地目录
2. 配置zoo.cfg(将自带的zoo_sample.cfg copy并改名为zoo.cfg)
# The number of milliseconds of each tick
#心跳时间,客户端与zookeeper server之间的心跳时间
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take 集群配置时,配置zookeeper接受客户端(客户端是指follower服务器,而不是client连接server的客户端) 初始化连接最长能接受的多少个心跳时间间隔数
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement  这个是集群配置时 follower与leader之间的请求应答时间
syncLimit=5
# the directory where the snapshot is stored. zookeeper保存数据目录
dataDir=D:/workspace/config-cache/zookeeper/zookeeper-3.3.6/data/zookeeper
# the port at which the clients will connect  客户端连接zookeeper server的端口
clientPort=2181

3. 启动zookeeper server
执行bin目录下zkServer.cmd
3.2 安装(集群)
配置zookeeper集群(或者在单机上配置伪集群)
本机设置集群,copy zookeeper-3.3.6 到另外一个目录
1. 设置hosts文件,设置server对应的ip
127.0.0.1   zkserver01
127.0.0.1    zkserver02

2. 修改配置文件zoo.cfg
#cluster config
server.1=zkserver01:2000:2001
server.2=zkserver02:2002:2003
解释一下上面的配置 server.1=zkserver01:2000:2001
1:表示第几号服务器,与myid中内容一致
zkserver01: 是server01 的ip地址,或者使用hosts中设置的主机名
2000:表示的是这个服务器与集群中的 Leader 服务器交换信息的端口
2001:表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口

另外,在zoo.cfg文件中,如果在同一台机器上设置集群,clientPort需要设置不同的端口号
3. 添加myid文件
在zoo.cfg 配置的dataDir路径下添加文件myid(文件名),文件内容就是上面的第几号服务器的值
4. 启动集群
执行server01 的zkServer.cmd
执行server02的zkServer.cmd
先执行的server01 在server02启动之前会抛出异常,随着server02启动之后趋于正常,异常可以忽略
3.3 使用demo
Demo中包含两个类Executor 和 DataMonitor 负责监听zookeeper某个节点,如果该节点数据发生变化,则dataMonitor会有所反应,然后把最新的data写入文件,并调用执行本地命令。
Zookeeper的watcher是单次有效,如果需要每次变化都能通知client,需要在client接受到变化之后再次注册watcher
if (path != null && path.equals(znode)) {
                // Something has changed on the node, let's find out
                zk.exists(znode, true, this, null);
            }

Zookeeper中watcher概念及特性可以查阅zookeeperProgrammers.pdf文档

单机zkserver执行Executor 的时候设置args: zkserver01:2181 / F:/app/log.txt hostname
集群执行的时候设置的hostPort 略有不同,zkserver01:2181, zkserver02:3181 / F:/app/log.txt hostname
zookeeper-client.zip为java project ,解压后import 到workspace即可
分享到:
评论

相关推荐

    Apache ZooKeeper分布式环境搭建教程

    zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; ...

    深入解析ZooKeeper分布式环境搭建+编程知识+技术开发

    zookeeper之分布式环境搭建:深入解析ZooKeeper分布式环境搭建+编程知识+技术开发; zookeeper之分布式环境搭建:深入解析ZooKeeper分布式环境搭建+编程知识+技术开发; zookeeper之分布式环境搭建:深入解析...

    zookeeper环境搭建.md

    zookeeper环境搭建.md

    linux下zookeeper集群环境搭建详细图文教程.docx

    linux下zookeeper集群环境搭建详细图文教程,简单易使用

    zookeeper的搭建及使用

    ### ZooKeeper基础知识与...通过这些步骤,用户不仅能够了解如何在本地环境中快速部署ZooKeeper,还能够掌握如何构建一个高可用的分布式ZooKeeper集群。这为后续利用ZooKeeper进行分布式应用程序开发打下了坚实的基础。

    Zookeeper环境搭建

    ### Zookeeper环境搭建与应用场景详解 #### 一、Zookeeper简介及重要性 **Zookeeper**作为Hadoop生态系统中的一个重要组成部分,主要负责管理和协调分布式应用程序中的各种组件和服务。它的核心功能在于提供一种...

    Zookeeper环境搭建部署文档.docx

    ### Zookeeper环境搭建部署...以上就是Zookeeper环境搭建部署的相关知识点,涵盖了从安装配置到基本使用的全过程。通过这些步骤,用户可以快速地搭建起一个稳定可靠的Zookeeper服务环境,并进行简单的数据管理和操作。

    zookeeper伪分布式搭建(1)1

    在本文中,我们将详细介绍如何在单台机器上搭建 Zookeeper 的伪分布式集群。伪分布式集群意味着在同一台机器上运行多个 Zookeeper 实例,它们各自独立并模拟分布式环境的行为。 首先,确保你的服务器已经安装了 JDK...

    Zookeeper集群搭建.doc

    Zookeeper集群搭建是一个重要的任务,尤其在分布式系统中,它作为协调服务,为高可用性和数据一致性提供了基础。Zookeeper是Apache的一个开源项目,用于处理分布式应用中的命名服务、配置管理、集群同步、选举等功能...

    大数据综合实验环境搭建(3个集群、Zookeeper、Hive、HBase)

    大数据综合实验环境搭建(3个集群、Zookeeper、Hive、HBase) 本资源摘要信息主要对大数据综合实验环境搭建进行了详细的介绍,涵盖了 JDK 的安装和配置、免密码登录的设置、Zookeeper 的安装、Hive 和 HBase 的安装...

    dubbo-zookeeper搭建

    搭建Dubbo-Zookeeper环境的第一步是安装Zookeeper。下载并解压提供的"zookeeper-3.4.8.rar",按照官方文档进行配置。主要步骤包括:修改conf/zoo.cfg配置文件,设置数据存储目录,启动Zookeeper服务。确保Zookeeper...

    Zookeeper伪分布式集群环境搭建过程

    ### Zookeeper伪分布式集群环境搭建过程 #### 一、Zookeeper简介 ZooKeeper是一个分布式的、开源的应用程序协调服务,被广泛应用于多种分布式场景之中,例如配置维护、域名服务、分布式同步、组服务等。它能够提供...

    dubbo+zookeeper集成搭建

    **环境搭建步骤** 为了在全新环境中部署 dubbo+zookeeper,我们需要按照以下步骤操作: 1. **创建虚拟机账号和设置权限** 创建一个名为 admin 的用户,并赋予必要的权限,例如密码为 root,IP 地址为 192.168.1.xx...

    Zookeeper开发环境搭建

    ### 单机环境搭建 1. 在 `/opt` 目录下创建一个名为 `zookeeper` 的文件夹,并设置所属用户为 `hc`: ```bash mkdir -p /opt/zookeeper chown -R hc:hc /opt/zookeeper ``` 2. 解压缩 Zookeeper 的最新版本到 ...

    Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境详解

    ### Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境详解 #### 一、环境说明与理解 - **环境概述**:文档介绍了如何通过Hadoop、HBase以及ZooKeeper来构建一个分布式的集群环境。这种环境主要用于处理大...

    zookeeper 伪集群和集群环境搭建

    ### 一.Zookeeper 伪集群环境搭建 在伪集群环境下,单台机器模拟多台服务器的行为。以下是搭建步骤: 1. **安装 Zookeeper**:将 Zookeeper 的安装包分别拷贝到三个不同的目录,例如 `/usr/local/zookeeper_...

    windows环境下zookeeper集群搭建

    在Windows环境下搭建Zookeeper集群是一项基础且重要的任务,特别是在分布式系统和大数据领域。Zookeeper作为一个高可用的分布式协调服务,广泛应用于配置管理、命名服务、分布式锁和集群管理等场景。下面将详细介绍...

    zookeeper之分布式环境搭建.zip

    二、Zookeeper环境搭建步骤 1. 安装Java环境:由于Zookeeper是基于Java开发的,所以首先确保系统安装了Java运行环境。 2. 下载Zookeeper:从官方网站获取最新版本的Zookeeper,解压到指定目录。 3. 配置环境变量:在...

    ZooKeeper环境搭建

    **ZooKeeper环境搭建** ZooKeeper是一款分布式协调服务,由Apache基金会开发,广泛应用于分布式系统中的命名服务、配置管理、集群同步等场景。本文将详细介绍如何在本地环境中搭建ZooKeeper。 首先,我们需要理解...

    ZooKeeper分布式环境搭建详解.pdf

    ### ZooKeeper分布式环境搭建详解 #### 一、ZooKeeper简介及应用场景 ZooKeeper是一个分布式协调服务,它主要用于在分布式环境中提供一致性服务。这些服务包括但不限于维护配置信息、命名服务、提供分布式同步机制...

Global site tag (gtag.js) - Google Analytics