一、Zookeeper的基本信息

1.1背景

无论在前面,我们学习hdfs,还是学习redis集群,我们都会使用到一个zookeeper进行选举。这导致了Redis的产生。

我们知道,在先前我们使用Zookeeper的时候,我们使用三个节点。一个leader节点和两个follower节点,进行选举。所以,在集群模式下,leader这个节点,理论上存在单点故障问题,但是实际上,这个leader确实是及其high available的。

  Zookeeper有两种可运行的状态:1.可用状态。2.不可用状态。

  不可用状态恢复到可用状态应该越来越好。

1.2.Zookeeper不是一个数据库

Zookeeper是一个文件系统,结构上是一个目录树结构(类似Linux的目录树),但是却没有文件和文件夹的定义,这个目录树的各个分支,实际上仅仅是一个node(节点),所以不能存很多的文件和数据。我们在观察一些老项目的时候,往往会看到这样的一个现象。分布式项目,在进行跃迁的时候,刚开始会使用zk进行存储数据,但是随着技术的发展,新的发展会剔除存储这个功能的使用,为什么呢?

zk在设计的时候,任何方向设计都是以“快速”优先,而速度快,往往带来的缺陷是在数据传输的时候,不能传输(大文件)。相反,我们学习过的redis,可以作为一个数据库进行使用。zk的node可以存储小量数据,这个数据量大小约1MB。

1.3.临时节点和持久节点

每个client在连接的客户端的时候,都会产生一个session。依托于session,我们可以知道,有的节点是临时节点和持久节点。

有了临时节点的存在,建立了一个会话,创建了一把锁,当session在得时候,锁就存在,当session消失的时候,锁就消失,这把锁不需要再去设计其他的业务逻辑代码。

1.4.特征&保障

  • 顺序一致性-客户端的更新将发送顺序应用
  • 原子性-更新成功或失败,没有部分结果
  • 统一视图-无论客户端连接那个服务器,客户端都将看到相同的服务视图
  • 可靠性-一旦应用了更新,它将从那时起持续到客户端覆盖更新
  • 及时性-系统的客户视图保证在特定时间内是最新的

二、安装

2.1.获取源

wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz

2.2.解压,移动到opt目录

tar -xf apache-zookeeper-3.5.5-bin.tar.gz
mv apache-zookeeper-3.5.5-bin zookeeper-3.5.5
mv zookeeper-3.5.5 /opt

2.3.修改配置文件

mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改dataDir=/var/zk server.1=192.168.118.151:2888:3888
server.2=192.168.118.152:2888:3888
server.3=192.168.118.153:2888:3888
server.4=192.168.118.154:2888:3888 mkdir /var/zk echo 1 >> /var/zk/myid
echo 2 >> /var/zk/myid
echo 3 >> /var/zk/myid
echo 4 >> /var/zk/myid

2.4.修改ZOOKEEPER_HOME

vim /etc/profile

export ZOOKEEPER_HOME=/opt/zookeeper-3.5.5
export PATH=.:$PATH:$ZOOKEEPER_HOME/bin source /etc/profile

2.5.开启zk

zkServer.sh start

2.6.开启zkcli.sh

zkcli.sh

2.7.zkcli.sh的使用

ls / 查看node
create /ooxx "" 创建一个ooxx节点
get -s /ooxx 获取一个ooxx
  • 关于cZxid,mZxid,pZxid
这个/ooxx的数据最大1M,这个数据也是二进制安全的

cZxid是事务id,递增的。 

cZxid,mZxid,pZxid 代表create modify parent

pZxid的子节点与最近一次创建/删除的时间,与本节点/子节点有关,与孙子节点无关
  • zkCli的每次会话都会创建一个SessionId,保存在日志文件中

  • 端口的使用

    • 3888:选主投票用的
    • 2888:leader接受write请求用的

Zookeeper01——zk的基本信息和安装的更多相关文章

  1. 搭建互联网架构学习--006--duboo准备之zk集群部署安装

    dubbo集群部署安装依赖于zookeeper,所以先安装zookeeper集群. 1.准备三台机器做集群 2.配置 配置java环境  ,2,修改操作系统的/etc/hosts文件,添加IP与主机名 ...

  2. zk 02之 Windows安装和使用zookeeper

    本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非 ...

  3. Linux上安装 MongoDB ZK MEMCACHE PHP扩展

    安装mongo扩展: 下载地址:https://github.com/mongodb/mongo-php-driver,下载该源码包 /usr/local/php/bin/pecl install m ...

  4. linux安装常用软件和查询基本信息

                                                                          linux安装常用软件和查询基本信息 1. 安装常用软件 [ ...

  5. maven系列之一maven安装和与IDE集成

    第一部分:maven的基本信息和安装,配置  maven是一个项目构建和管理的工具,提供了帮助管理 构建.文档.报告.依赖.scms.发布.分发的方法.可以方便的编译代码.进行依赖管理.管理二进制库等 ...

  6. kafka集群安装与配置

    一.集群安装 1. Kafka下载: 可以从kafka官方网站(http://kafka.apache.org)上找到下载地址,再wgetwget http://mirrors.cnnic.cn/ap ...

  7. mysql 和 hive 和分布式zookeeper和HBASE分布式安装教程

    一,mysql 安装mysql5.7完整教程1. yum -y install mysql-server直接执行语句后等待就好已安装: mysql-community-server.x86_64 0: ...

  8. mac 下安装ES 与 Head插件 以及安装Kibana

    一.安装Elasticsearch 在Mac上可以使用brew快速安装Elasticsearch brew install elasticsearch 安装完成后可使用elasticsearch -- ...

  9. Hive/Hbase/Sqoop的安装教程

    Hive/Hbase/Sqoop的安装教程 HIVE INSTALL 1.下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3 ...

随机推荐

  1. C# 3Des加密解密

      第三方的加密规则约定:加密经过3DES加密后的Base64 编码 最近在对接一个第三方接口,请求参数和响应参数全采用3des加密规则,由于我是用.NET对接的,而第三方是Java开发的,所以两种程 ...

  2. Django前期知识准备

    一. WEB应用 WEB应用程序是一种可以通过WEB访问的应用程序, 程序的最大好处是用户很容易访问应用程序, 用户只需要有浏览器即可, 不需要再安装其他软件. 应用程序有两种模式: C/S, B/S ...

  3. 转:微服务框架之微软Service Fabric

    常见的微服务架构用到的软件&组件: docker(成熟应用) spring boot % spring cloud(技术趋势) Service Fabric(属于后起之秀 背后是微软云的驱动) ...

  4. Buffer与Cache的理解

    Linux与Windows内存Linux系统的内存机制是优先使用物理内存,当物理内存还有空闲时,Linux系统是不会释放内存的,即使使用过内存的程序已经被关闭,这部分内存就用来做缓存了.换句话说,即使 ...

  5. 开启phoenix命名空间的自动映射

    1.在测试环境 hbase 全部集群的 hbase-site.xml 配置文件都加上这个配置,开启phoenix命名空间的自动映射 <property> <name>phoen ...

  6. Tei-Wei Kuo

    一. A Commitment-based Management Strategy for the Performance and Reliability Enhancement of Flash-m ...

  7. VUE 1.0

    现代开发模式:vue/react. 20%的时间花在了表现层 传统开发模式:jquery. 80%的时间花在了表现层 MVC——数据.表现.行为分离 视图层(表现层)<----->数据层 ...

  8. PTA(Advanced Level)1025.PAT Ranking

    To evaluate the performance of our first year CS majored students, we consider their grades of three ...

  9. Prefix and Suffix Search

    Given many words, words[i] has weight i. Design a class WordFilter that supports one function, WordF ...

  10. 从入门到自闭之Python--RESTful API规范与序列化

    RESTful API规范 REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fieldi ...