Zookeeper

什么是Zookeeper?

官网传送门

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

从设计模式来说基于观察者模式设计的分布式服务管理框架,存储大家都关心的数据,然后接受观察者的注册。一旦这些数据状态发生变化,zookeeper就将负责通知已经注册的观察者做出反应.

Zookeeper的安装

镜像链接

Zookeeper的安装很简单,只需要下载压缩包,然后解压。

解压后的目录:

有几个重要文件目录要注意,bin里面存放着zookeeper命令操作文件,conf就是配置了。

 # The number of milliseconds of each tick
tickTime=2000 心跳时间
# The number of ticks that the initial
# synchronization phase can take
initLimit=10 初始连接时间,超过这个时间连接失败 10 * tickTime
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5 数据同步时间 5 * tickTime
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper 数据存放目录,开发的时候一般会改
# 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
~
~

修改conf文件下的zoo_sample.cfg 改成zoo.cfg

  • 然后进入到zookeeper/bin/下

windows使用zkServer.cmd启动服务zkCli.cmd启动客户端,

linux是使用./zkService.sh start启动服务./zkCli.sh start启动服务

也可以用四字命令查看

echo ruok | nc localhost 2181

出现imok就代表启动了

这样我们就已经安装好了zookeeper了

zookeeper数据结构

zookeeper的数据结构很像文件系统。在zookeeper中每一个结构称为znode(zookeeper node).

/app1等就是路径PATH
在每个Znode节点中还可以存储少量的数据,官网的解释是(ZooKeeper旨在存储协调数据:状态信息,配置,位置信息等,因此存储在每个节点的数据通常很小,在字节到千字节范围内。)

通过

create /amber hahaha

可以创建一个PATH为/amber value为hahaha的Znode节点

get /amber

通过get /amber 我们可以在第一行看到znode的value “hahaha”

橙色部分统称为Stat结构体,描述当前znode的信息

hahaha //znode的value值
cZxid = 0x1d //创建znode的事务id
ctime = Mon Dec 03 23:19:30 CST 2018 //创建时间
mZxid = 0x1d //修改znode的事务id
mtime = Mon Dec 03 23:19:30 CST 2018 //修改时间
pZxid = 0x1d
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6 //value的length
numChildren = 0 //子节点的个数

除此之外可以通过help查看zookeeper的操作命令

Zookeeper - 什么是Zookeeper,以及zookeeper的安装(1)的更多相关文章

  1. 初识zookeeper(一)之zookeeper的安装及配置

    1.简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送.除此还可以用作dubbo服务的注册中心. 2.安装 2.1 下 ...

  2. 初识zookeeper(1)之zookeeper的安装及配置

    初识zookeeper(一)之zookeeper的安装及配置 1.简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送. ...

  3. zookeeper入门及使用(一)- 安装及操作

    zookeeper是什么? highly reliable distributed coordination,用来做高可靠的分布式协调者,可用来: 业务发现(service discovery)找到分 ...

  4. zookeeper[1] (转)ZooKeeper Programmer's Guide(zookeeper编程向导)---中文

    原文:http://www.cnblogs.com/Xrinehart/p/3512509.html 本文是为想要创建使用ZooKeeper协调服务优势的分布式应用的开发者准备的.本文包含理论信息和实 ...

  5. Zookeeper系列四:Zookeeper实现分布式锁、Zookeeper实现配置中心

    一.Zookeeper实现分布式锁 分布式锁主要用于在分布式环境中保证数据的一致性. 包括跨进程.跨机器.跨网络导致共享资源不一致的问题. 1. 分布式锁的实现思路 说明: 这种实现会有一个缺点,即当 ...

  6. 【Zookeeper】分布式服务框架 Zookeeper -- 管理分布式环境中的数据

    Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理 ...

  7. ZooKeeper 系列(二)—— Zookeeper单机环境和集群环境搭建

    一.单机环境搭建         1.1 下载         1.2 解压         1.3 配置环境变量         1.4 修改配置         1.5 启动         1. ...

  8. ZooKeeper系列(二)—— Zookeeper 单机环境和集群环境搭建

    一.单机环境搭建 1.1 下载 下载对应版本 Zookeeper,这里我下载的版本 3.4.14.官方下载地址:https://archive.apache.org/dist/zookeeper/ # ...

  9. zookeeper介绍(4)zookeeper的完整分布式

    参考: zookeeper的单机和伪分布式教程请参考:zookeeper介绍(1)zookeeper介绍与安装 Zookeeper的完整分布式集群搭建: 准备好三台centos主机:(在这我使用的是z ...

  10. 大数据学习笔记之Zookeeper(四):Zookeeper实战篇(二)

    文章目录 4.1 分布式安装部署 4.2 客户端命令行操作 4.3 API应用 4.3.1 eclipse环境搭建 4.3.2 创建ZooKeeper客户端: 4.3.3 创建子节点 4.3.4 获取 ...

随机推荐

  1. 【linux】【mysql】mysql8.0开启远程访问及常见问题

    1.连接数据库 [root@localhost ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands e ...

  2. opencv调整图像亮度对比度

    图像处理 图像变换就是找到一个函数,把原始图像矩阵经过函数处理后,转换为目标图像矩阵. 可以分为两种方式,即像素级别的变换和区域级别的变换 Point operators (pixel transfo ...

  3. linux下安装pip(centos)

    centos系统中自带python2.7.5但是却没有pip工具 直接yum install pip会提示没有这个包 解决方案: 需要先安装扩展源EPEL. EPEL(http://fedorapro ...

  4. Jmete压力测试、并发测试的简单方法

    我们的需求场景如下: 服务器硬件:(只有一台) 系统:CentOS 7 WebServer:Tomcat 7.0 Jdk:1.8 CPU:8核 2.9GHz两个 内存:16g 报名应用系统:只需要向外 ...

  5. centos7下mongoDB安装和配置

    2018-10-31更新 yum –y install mongodb-org 找不到这个包,清华源: https://mirrors.tuna.tsinghua.edu.cn/help/mongod ...

  6. 基于计算机操作系统的Linux的进程管理

    一.实验目的 1.熟悉和理解进程和进程树的概念,掌握有关进程的管理机制. 2.了解进程与程序.并行与串行执行的区别. 3.掌握使用Linux命令管理和操作进程的方法 二.实验内容 1. 用ps命令观察 ...

  7. 命名对象继承1-验证Create*命名对象安全属性的传递

    windows核心编程 第5版 48页 下半部写道 进程B调用CreateMutex时,它会向函数传递安全属性信息和第二参数.如果已经存在一个指定名称的对象,这些对象就会被忽略 于是我通过代码来验证这 ...

  8. 当我们在聊 Serverless 时你应该知道这些

    作者 | 杨泽强(竹涧)阿里云技术专家 说起当前最火的技术,除了最新的区块链.AI,还有一个不得不提的概念是 Serverless.Serverless 作为一种新型的互联网架构,直接或间接推动了云计 ...

  9. git 工作流中的 Sourcetree 和命令行操作对比

    git 工作流操作 1.初始化本地仓库文件夹 终端进入项目文件夹 git init 隐藏文件夹中有 .git 文件夹则初始化成功 2.git 查看仓库状态 这里以新建一个 demo.txt 为例 ① ...

  10. 【Java】 生成32位随机字符编号

    /** * 生成32位编码 * @return string */ public static String getUUID(){ String uuid = UUID.randomUUID().to ...