zookeeper 面试问题解决了哪些问题

zookeeper解决单点故障
在hadoop的生态圈中有,hive、pig、hbase很多都是通过动物命名的。而zookeeper英译动物管理员,很形象。
通过zookeeper,可以解决集群管理,单点故障问题。
具体就是通过每次启动一个weblogic的时候都对应启动一个client到zookeeper的连接(长连接、通过心跳包检测连接是否正常),并且创建一个临时的znode节点(EPHEMERAL类型),这种类型的节点有一个特点就是如果clinet与zookeeper的连接一旦超时,就会删除该节点。
client可以通过监控该节点,配置回调函数,来获取变化,从而得到该server是否正常或者已经宕机。
http://www.blogjava.net/BucketLi/archive//341268.html
/blog/1871520
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。积极上进,爱好学习
经常帮助其他会员答疑
站长推荐 /6
about云|新出视频,openstack零基础入门,解决你ping不通外网难题
云计算hadoop视频大全(新增 yarn、flume|storm、hadoop一套视频
视频资料大优惠
大数据零基础由入门到实战
阶段1:hadoop零基础入门基础篇
阶段2:hadoop2入门
阶段3:大数据非hadoop系列课程
阶段4:项目实战篇
阶段5:大数据高级系列应用课程
阶段6:工作实用系列教程
等待验证会员请验证邮箱
新手获取积分方法
Powered byZooKeeper中的节点故障处理机制_服务器应用_Linux公社-Linux系统门户网站
你好,游客
ZooKeeper中的节点故障处理机制
来源:Linux社区&
作者:xhh198781
在介绍ZooKeeper处理节点故障的机制之前,我想先给大家讲一讲在一切都正常的情况下,ZooKeeper是如何工作的,也就是ZooKeeper处理客户端请求的流程。当然我只侧重讲解客服端的写请求部分。
&&&&&& 过程如下:
在这主要的6步过程中,任何与之相关的节点都有可能出现故障,那么zooKeeper是如何来处理的呢,以保证服务的高可用性和一致性?
相关资讯 & & &
& (03月26日)
& (02月20日)
& (07月15日)
& (02月23日)
& (01月14日)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款zookeeper适用场景:zookeeper解决了哪些问题 - 李克华 - 博客园
云计算高级群:
交流:Hadoop、NoSQL、分布式、lucene、solr、nutch
问题导读:1.master挂机,传统做法备份必然是以前数据,该如何保证挂机数据与备份数据一致?2.分布式系统如何实现对同一资源的访问,保证数据的强一致性?3.集群中的worker挂了,传统做法是什么?zookeeper又是如何做的?分布式系统的运行是很复杂的,因为涉及到了网络通信还有节点失效等不可控的情况。下面介绍在最传统的-workers,主要可以会遇到什么问题,传统方法是怎么解决以及怎么用zookeeper解决。Master节点管理集群当中最重要的是Master,所以一般都会设置一台Master的Backup。Backup会定期向Master获取Meta信息并且检测Master的存活性,一旦Master挂了,Backup立马启动,接替Master的工作自己成为Master,分布式的情况多种多样,因为涉及到了网络的抖动,针对下面的情况:
Backup检测Master存活性传统的就是定期发包,一旦一定时间段内没有收到响应就判定Master Down了,于是Backup就启动,如果Master其实是没有down,Backup收不到响应或者收到响应延迟的原因是因为网络阻塞的问题呢?Backup也启动了,这时候集群里就有了两个Master,很有可能部分workers汇报给Master,另一部分workers汇报给后来启动的Backup,这下子服务就全乱了。
Backup是定期同步Master中的meta信息,所以总是滞后的,一旦Master挂了,Backup的信息必然是老的,很有可能会影响集群运行状态。
Master节点高可用,并且保证唯一。
Meta信息的及时同步
zookeeper Master选举zookeeper会分配给注册到它上面的客户端一个编号,并且zk自己会保证这个编号的唯一性和递增性,N多机器中只需选出编号最小的Client作为Master就行,并且保证这些机器的都维护一个一样的meta信息视图,一旦Master挂了,那么这N机器中编号最小的胜任Master,Meta信息是一致的。配置文件管理集群中配置文件的更新和同步是很频繁的,传统的配置文件分发都是需要把配置文件数据分发到每台worker上,然后进行worker的reload,这种方式是最笨的方式,结构很难维护,因为如果集群当中有可能很多种应用的配置文件要同步,而且效率很低,集群规模一大负载很高。还有一种就是每次更新把配置文件单独保存到一个数据库里面,然后worker端定期pull数据,这种方式就是数据及时性得不到同步。解决问题:
统一配置文件分发并且及时让worker生效
zookeeper发布与订阅模型发布与订阅,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。例如全局的配置信息,服务式服务框架的服务地址列表等就非常适合使用。分布式锁在一台机器上要多个进程或者多个线程操作同一资源比较简单,因为可以有大量的状态信息或者日志信息提供保证,比如两个A和B进程同时写一个文件,加锁就可以实现。但是分布式系统怎么办?需要一个三方的分配锁的机制,几百台worker都对同一个网络中的文件写操作,怎么协同?还有怎么保证高效的运行?解决问题:
高效的分布式锁
zookeeper分布式锁锁主要得益于ZooKeeper为我们保证了数据的强一致性,zookeeper的znode节点创建的唯一性和递增性能保证所有来抢锁的worker的原子性。集群worker管理集群中的worker挂了是很可能的,一旦workerA挂了,如果存在其余的workers互相之间需要,那么workers必须尽快更新自己的hosts列表,把挂了的worker剔除,从而不在和它通信,而Master要做的是把挂了worker上的作业调度到其他的worker上。同样的,这台worker重新恢复正常了,要通知其他的workers更新hosts列表。传统的作法都是有专门的系统,通过不断去发心跳包(比如ping)来发现worker是否alive,缺陷就是及时性问题,不能应用于在线率要求较高的场景解决问题:
集群worker
zookeeper监控集群利用zookeeper建立znode的强一致性,可以用于那种对集群中机器状态,机器在线率有较高要求的场景,能够快速对集群中机器变化作出响应。相关文章:&
文章转自:/thread-.html
随笔 - 252}

我要回帖

更多关于 曲线系能解决哪些问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信