一.需求 在主从结构的集群中,我们假设硬件机器是很脆弱的,随时可能会宕机,当master挂掉之后需要从slave中选出一个节点作为新的master,使用zookeeper可以很简单的实现集群选主功能. 二.分析 下面为了方便叙述,将使用更通用的技术术语,即使用leader表示master,使用follower表示slave. 集群选主涉及到两个问题: 1. 谁来做leader 2. leader挂掉了怎么被follower感知到 首先是第一个问题,谁来做leader,其实可以将这个问题看做是多线…
前言: 随着业务的扩大,用户的增多,访问量的增加,单机模式已经不能支撑,从而出现了从单机模式->垂直应用模式->集群模式,集群模式诞生了,伴随着一堆问题也油然而生,Master怎么选举,机器故障及时移除集群,添加机器了如何及时的感应到,Zookeeper不仅能维护当前的集群服务状态,还能及时的选出master,它们的实现方式都是在Zookeeper上面注册一个EPHEMERAL目录节点,在创建目录的父目录上面调用getChildren(String path,boolean watch)设置w…
原文链接: http://gudaoyufu.com/?p=1395 zookeeper工作方式 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现. 分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅.负载均衡.命名服务.分布式协 调/通知.集群管理.Master 选举.分布式锁和分布式队列 等功能. 在使用中,通常以集群的方式部署,Zookeeper节点部署越多,服务的可靠性越高,建议部署奇数个节点,因为zookeeper集…
前言: 随着业务的扩大,用户的增多,访问量的增加,单机模式已经不能支撑,从而出现了从单机模式->垂直应用模式->集群模式,集群模式诞生了,伴随着一堆问题也油然而生,Master怎么选举,机器故障及时移除集群,添加机器了如何及时的感应到,Zookeeper不仅能维护当前的集群服务状态,还能及时的选出master,它们的实现方式都是在Zookeeper上面注册一个EPHEMERAL目录节点,在创建目录的父目录上面调用getChildren(String path,boolean watch)设置w…
参考:zookeeper在windows下的伪集群模式 踩到的坑: 注意windows下路径需要使用\ dataDir=D:\Program Files\Java\zookeeper-3.4.10-cluster\data\1…
jdk 配置 # tar xf jdk-8u161-linux-x64.tar.gz -C /usr/local/ # vim /etc/profile.d/jdk.sh export JAVA_HOME=/usr/local/jdk1.8.0_161 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH # source /etc/profile.d/…
1.上传文件目录说明 上传的文件一般放在 /home/下 安装文件一般在 /usr/local/下 2. 安装zookeeper 2.1将zookeeper-3.4.11.tar.gz拷贝到/home/下 2.2解压.重命名.移动 tar -xvzf zookeeper-3.4.11.tar.gz mv zookeeper-3.4.11.tar.gz zookeeper mv zookeeper /usr/local 3. 配置环境变量 vim /etc/profile export ZOOKE…
1.Hbase集群的高可用性与伸缩性 HBase可以实现对Regionserver的监控,当个别Regionserver不可访问时,将其负责的分区分给其他Regionsever,其转移过程较快,因为只需要将分区的相关信息转移.Hlog和表中数据实际存储在HDFS上,本身具有多副本机制容错. Master节点以及HDFS中的Namenode节点,如果只部署一个,可能造成单点故障,可以依托Zookeeper实现这两种关系主节点的高可用性配置. Zookeeper实现的方法是:部署多个Master或N…
(1)hadoop2.7.1源码编译 http://aperise.iteye.com/blog/2246856 (2)hadoop2.7.1安装准备 http://aperise.iteye.com/blog/2253544 (3)1.x和2.x都支持的集群安装 http://aperise.iteye.com/blog/2245547 (4)hbase安装准备 http://aperise.iteye.com/blog/2254451 (5)hbase安装 http://aperise.it…
一.分布式锁概述 Java中基于AQS框架提供了一系列的锁,但是当需要在集群中的多台机器上互斥执行一段代码或使用资源时Java提供的这种单机锁就没了用武之地,此时需要使用分布式锁协调它们.分布式锁有很多实现,基于redis.基于数据库等等,本次讨论的是基于zk实现分布式锁. 免责声明:下面的分布式锁是本人学习zk时根据其特性摸索出来的实现,并不代表业内权威做法,仅作为不同的思想碰撞出灵感的小火花之用,如有错误之处还望多多指教. 二.不可重入的分布式锁(有羊群效应,不公平锁) 首先比较容易想到的就…