ZooKeeper
Lv_Hulk
从“0”到“1”!
展开
-
ZooKeeper典型应用场景
ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系列API接口(或者称为原语集),摸索出来的典型使用方法。数据发布与订阅(配置中心)发布与订阅模型,即...原创 2019-03-05 21:03:04 · 102 阅读 · 0 评论 -
ZooKeeper的应用--服务器上下线动态感知
(一)需求描述某分布式系统中,主节点可以有多台,可以动态上下线。任意一台客户端都能实时感知到主节点服务器的上下线(二)设计思路1、设计服务器端存入服务器上线,下线的信息,比如都写入到 servers 节点下2、设计客户端监听该 servers 节点,获取该服务器集群的在线服务器列表3、服务器一上线,就往 zookeeper 文件系统中的一个统一的节点比如 servers 下写入一个临...原创 2019-03-15 13:49:37 · 377 阅读 · 0 评论 -
ZooKeeper中的各种角色、Zookeeper节点数据操作流程
(一)ZooKeeper中的各种角色(二)Zookeeper节点数据操作流程注: 1.在Client向Follwer发出一个写的请求 2.Follwer把请求发送给Leader 3.Leader接收到以后开始发起投票并通知Follwer进行投票 4.Follwer把投票结果发送给Leader 5.Leader将结果汇总后如果需要写入,则开始写入同时把写入操作通知...原创 2019-03-15 13:07:02 · 1979 阅读 · 0 评论 -
ZooKeeper 工作流程
(一)Leader 工作流程Leader 主要有三个功能:1、恢复数据2、维持与 Learner 的心跳,接收 Learner 请求并判断 Learner 的请求消息类型Learner 的消息类型主要:PING 消息:Learner 的心跳信息REQUEST 消息:Follower 发送的提议信息,包括读写请求ACK 消息:Follower 对提议的回复,超过半数的 Follower...原创 2019-03-15 12:55:17 · 615 阅读 · 0 评论 -
ZooKeeper 的集群选主、数据同步
(一)ZooKeeper 的全新集群选主以一个简单的例子来说明整个选举的过程:假设有五台服务器组成的 zookeeper 集群,它们的 serverid 从 1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的。假设这些服务器依序启动,来看看会发生什么1、服务器 1 启动,此时只有它一台服务器启动了,它发出去的报没有任何响应,所以它的选举状态一直是 LOOKIN...原创 2019-03-15 12:19:26 · 2195 阅读 · 3 评论 -
Hadoop的HA集群的机架感知
一、背景 Hadoop 的设计目的:解决海量大文件的处理问题,主要指大数据的存储和计算问题,其中, HDFS 解决数据的存储问题;MapReduce 解决数据的计算问题 Hadoop 的设计考虑:设计分布式的存储和计算解决方案架构在廉价的集群之上,所以,服 务器节点出现宕机的情况是常态。数据的安全是重要考虑点。HDFS 的核心设计思路就是对 用户存进 HDFS 里的所有数据都做冗余备份,以...原创 2019-03-15 12:09:09 · 208 阅读 · 0 评论 -
Hadoop HA 集群搭建
(一)集群规划描述:hadoop HA 集群的搭建依赖于 zookeeper,所以选取三台当做 zookeeper 集群总共准备了四台主机,分别是 hadoop01,hadoop02,hadoop03,hadoop04其中 hadoop01 和 hadoop02 做 namenode 的主备切换,hadoop03 和 hadoop04 做resourcemanager 的主备切换(二)集...原创 2019-03-15 11:43:58 · 163 阅读 · 0 评论 -
ZooKeeper 集群 Java API 使用
具体代码实现/***增删改查*@author Lv_Hulk*/import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import org.apache.ZooKeeper.CreateMode;import org.apache.ZooKeeper.ZooDefs.Ids;...原创 2019-03-15 11:59:31 · 288 阅读 · 0 评论 -
ZooKeeper的开发环境eclipse配置
(一)eclipse中配置zookeeper开发环境1)将zookeeper eclipse plugin中的6个jar包放到eclipse安装目录下的plugins文件中,重启eclipse (2) 在 Eclipse 菜单打开Window->Show View->Other…->ZooKeeper 3.2.2。(3) 点击下图中的按钮进行zoo...原创 2019-03-15 11:01:46 · 725 阅读 · 0 评论 -
ZooKeeper的shell操作
Zookeeper的shell操作Zookeeper命令工具在启动Zookeeper服务之后,输入以下命令,连接到Zookeeper服务:[hadoop@hadoop1 ~]$ zkCli.sh -server hadoop2:2181 1 [hadoop@hadoop1 ~]$ zkCli.sh -server hadoop2:2181 2 Connecting to hado...转载 2019-03-15 10:43:26 · 145 阅读 · 0 评论 -
ZooKeeper的基本知识
ZooKeeper概述 ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比 如分布式同步,配置管理,集群管理,命名管理,队列管理。它被设计为易于编程,使用文 件系统目录树作为数据模型。服务端跑在 java 上,提供 java 和 C 的客户端 API 众所周知...原创 2019-03-15 10:29:38 · 290 阅读 · 0 评论 -
Paxos算法原理及推导
Paxos原理概述Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。Paxos算法是Lesile Lamport提出的一种基于消息传递且具有高度容错特性的一致性算法。分布式系统中的节点通信存在两种模型: 共享内存和消息传递。基于消息传递通信模型的分布式系统,不可避免会发生进程变慢被杀死,消息延迟、丢失、重复等问题,Paxos算法就...原创 2019-03-15 10:09:19 · 633 阅读 · 0 评论 -
ZooKeeper的应用--分布式共享锁
(一)需求描述在我们自己的分布式业务系统中,可能会存在某种资源,需要被整个系统的各台服务器共享访问,但是只允许一台服务器同时访问(二)设计思路1、设计多个客户端同时访问同一个数据2、为了同一时间只能允许一个客户端上去访问,所以各个客户端去 zookeeper 集群的一个znode 节点去注册一个临时节点,定下规则,每次都是编号最小的客户端才能去访问3、多个客户端同时监听该节点,每次当有子...原创 2019-03-15 13:55:40 · 160 阅读 · 0 评论