Zookeeper01——zk的基本信息和安装
一、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的基本信息和安装的更多相关文章
- 搭建互联网架构学习--006--duboo准备之zk集群部署安装
dubbo集群部署安装依赖于zookeeper,所以先安装zookeeper集群. 1.准备三台机器做集群 2.配置 配置java环境 ,2,修改操作系统的/etc/hosts文件,添加IP与主机名 ...
- zk 02之 Windows安装和使用zookeeper
本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非 ...
- Linux上安装 MongoDB ZK MEMCACHE PHP扩展
安装mongo扩展: 下载地址:https://github.com/mongodb/mongo-php-driver,下载该源码包 /usr/local/php/bin/pecl install m ...
- linux安装常用软件和查询基本信息
linux安装常用软件和查询基本信息 1. 安装常用软件 [ ...
- maven系列之一maven安装和与IDE集成
第一部分:maven的基本信息和安装,配置 maven是一个项目构建和管理的工具,提供了帮助管理 构建.文档.报告.依赖.scms.发布.分发的方法.可以方便的编译代码.进行依赖管理.管理二进制库等 ...
- kafka集群安装与配置
一.集群安装 1. Kafka下载: 可以从kafka官方网站(http://kafka.apache.org)上找到下载地址,再wgetwget http://mirrors.cnnic.cn/ap ...
- mysql 和 hive 和分布式zookeeper和HBASE分布式安装教程
一,mysql 安装mysql5.7完整教程1. yum -y install mysql-server直接执行语句后等待就好已安装: mysql-community-server.x86_64 0: ...
- mac 下安装ES 与 Head插件 以及安装Kibana
一.安装Elasticsearch 在Mac上可以使用brew快速安装Elasticsearch brew install elasticsearch 安装完成后可使用elasticsearch -- ...
- Hive/Hbase/Sqoop的安装教程
Hive/Hbase/Sqoop的安装教程 HIVE INSTALL 1.下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3 ...
随机推荐
- 导入现有java工程
1)错误:点击File-->open File 这样只能导入单个文件: 2)正确:File-->Import--> 然后下一步下一步即可.
- Markdown 入门基础
MarkDown基础语法 标题 通过 # 来实现标题效果.在markdown当中,标题与html相似,一共有六级标题. # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### ...
- 【并行计算-CUDA开发】有关CUDA当中global memory如何实现合并访问跟内存对齐相关的问题
ps:这是英伟达二面面的一道相关CUDA的题目.<NVIDIA CUDA编程指南>第57页开始 在合并访问这里,不要跟shared memory的bank conflic ...
- JAVA -----------交互式程序
2.6交互式程序 如果程序能在执行期间交互地从用户输入中读取数据,就可使程序每执行一次时计算出新结果,并且新结果取决于输入数据.这样的程序才具有实用性. 2.6.1 Scanner类 Scanner类 ...
- (转)新手入局 你必须要知道的四类Equity
许多人缠着我教他们打牌,开始几乎所有的问题都是问,你都玩什么牌. 这个话外行又很难解释,想来想去,我这样总结给他们(我也忘记自己过去有没有说过,我觉得总结的挺好的,只怕初学者听着又和天书一样了). 是 ...
- 代码中 方法 处提示:This method has a constructor name
“此方法具有构造方法的名字” package classpackage; public class Puppy { public void Puppy(String name) { System.ou ...
- 第二周Java课堂作业
演示一: public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size ...
- python中的with语句
https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/index.html
- LeetCode 160——相交链表(JAVA)
编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB ...
- linux下selenium+phantomjs环境
# 安装依赖软件yum -y install wget fontconfig # 下载PhantomJSwget -P /tmp/ https://bitbucket.org/ariya/phanto ...