一、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. appium+python+Windows自动化测试文档

    appium+python自动化测试文档 一.认识appium 1.    什么是appium appium是开源的移动端自动化测试框架: appium可以测试原生的.混合的.以及移动端的web项目: ...

  2. 《机器学习实战(基于scikit-learn和TensorFlow)》第七章内容学习心得

    本章主要讲述了“集成学习”和“随机森林”两个方面. 重点关注:bagging/pasting.boosting.stacking三个方法. 首先,提出一个思想,如果想提升预测的准确率,一个很好的方法就 ...

  3. windows下的句柄利用

    什么是句柄 维基百科:在程序设计中,句柄(handle)是Windows操作系统用来标识被应用程序所建立或使用的对象的整数.其本质相当于带有引用计数的智能指针.当一个应用程序要引用其他系统(如数据库. ...

  4. SQL --------JDBC 用用户名查询用户的信息

    package demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; ...

  5. 项目使用Hbase进行数据快速查询的代码案例

    之前项目中对于数据详情的查询使用的ddb技术,由于成本过高,现考虑使用开源的hbase框架,借此机会进行hbase的代码案例记录,之前已经对 hbase的原理进行介绍,介绍了hbase中的rowkey ...

  6. pmap 命令

    NAME pmap - report memory map of a process SYNOPSIS pmap [ -x | -d ] [ -q ] pids... pmap -V 常用参数: -x ...

  7. poj1155 TELE (树上分组背包)

    题目链接:https://vjudge.net/problem/POJ-1155 题意:给定一颗以1为根的边权树,有n个结点,其中m个叶子结点,每个叶子结点有一个价值.要求从m个叶子结点中选最多的结点 ...

  8. 区间dp之 "石子合并"系列(未完结)

    A. 石子合并<1> 内存限制:128 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统评测 方式:文本比较   题目描述 有N堆石子排成一排(n<=100),现要将石 ...

  9. selenium登录豆瓣网

    登录流程: 实例化一个driver,然后driver.get()发送请求 最重要的:切换iframe子框架,因为豆瓣的网页中的登录那部分是一个ifrme,必须切换才能寻找到对应元素 利用seleniu ...

  10. Elastic Search中DSL Query的常见语法

    Query DSL是一种通过request body提交搜索参数的请求方式.就是将请求头参数(?xxx=xxx)转换为请求体参数.语法格式:GET [/index_name/type_name]/_s ...