不了解 Zookeeper 的童鞋看过来哦~
不了解 Zookeeper 的童鞋看过来哦~
假如你有一个 Hadoop 集群,但是国庆假期期间你的 namenode 也就是主节点挂了,这时候“苦逼的”拿着三倍加班工资的运维人员赶快去处理,处理完成之后重启原来这个 namenode,这台主节点还是主节点吗?
答案是它当从节点了,这就跟我们今天要介绍的 Zookeeper 有关了,因为它选择主节点是有一定规则的。
再来看一个有意思的问题。在只有一台 Zookeeper 服务器的情况下,是不是可能会出现问题?假如有个 Zookeeper 集群,那么主节点挂掉之后谁当主节点,谁当从节点?
其实当 Zookeeper 的主节点挂掉之后,就会进行“投票选举”,选一台服务器作为主节点。其实 Zookeeper 所有节点启动之前,谁也不知道谁是主节点,因为每次启动后都会“投票选举”一个主节点,这个底层算法就是一种区块链中常用的共识算法。
什么是 Zookeeper?
那么,说了这么多,Zookeeper 到底是什么呢?
其实,和 Hadoop 一样,Zookeeper 是谷歌的 Chubby 的一种实现,是一种开源的分布式协调服务。不过 Hadoop 是根据谷歌的几篇论文搞出来的。
它的名字意思是动物园的管理员,那么它能管理哪些动物呢?Hadoop(就是大象)、Hive(就是勤劳的小蜜蜂)、Pig(猪噜噜)、Tomcat(小猫)。
Zookeeper 能帮我们做什么?
能够让多个节点统一完成所有动作,这就是分布式系统协调,还有实现负载均衡的功能。
在一个进程中共享锁是比较容易实现的,但是在跨进程和在不同服务器之中使用共享锁就比较难了,所以我们得使用 zookeeper,它让多进程或多个服务器之间的共享锁变得容易。
版权声明: 本文为 InfoQ 作者【Regan Yue】的原创文章。
原文链接:【http://xie.infoq.cn/article/7ac280e4a9c271335f881cdd7】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论