这是(shì)zookeeper-3.4.6下载,最近为(wéi)了解决HDFS的单(dān)点(diǎn)故障的问题,采(cǎi)用(yòng)了HA的方式(shì)是实现(xiàn),并通过zookeeper来实现自动切(qiē)换,既然需自动切换的话,那么必(bì)须要安装(zhuāng)zookeeper,我选用的(de)版本是3.4.6。下面详细介绍一下其安(ān)装过程。
zookeeper-3.4.6是再讲具体的步骤(zhòu)之前,需(xū)要说明(míng)的是,我安装zookeeper的集群是用到了五个节点(diǎn):分别是hadoop1,hadoop2,hadoop3,hadoop4,hadoop5。也就是说要在这五个节(jiē)点(diǎn)上部署zookeeper。这里需要注意一点:zookeeper集群的(de)节(jiē)点(diǎn)数必须是奇数,并且至少为3个。这里涉及到zookeeper的(de)选(xuǎn)举算法。
经过将近一年半的开发之后,Apahce Zookeeper 团队在 2014年3月10号 发布新版(bǎn)本 Zookeeper-3.4.6,Zookeeper的上一(yī)个版本 3.4.5 于2012年11月18号 发布(bù)。
Zookeeper 分布式服(fú)务框架是 Apache Hadoop 的一(yī)个子(zǐ)项目,它主要是用(yòng)来解决(jué)分布式应用中经常遇(yù)到(dào)的一些数(shù)据管理问题,如:统(tǒng)一(yī)命名服务(wù)、状态同步服(fú)务、集(jí)群管(guǎn)理、分布(bù)式应用(yòng)配置项的管理等。
Zookeeper-3.4.6 做了大量的 bug 修复和(hé)功能增强,fixes a critical bug that could prevent server from joining an established ensemble。此(cǐ)版本现已提供下(xià)载(zǎi),更多详细的更新信息请见 zookeeper release 页面。
initLimit:这个配置项(xiàng)是用来配置 Zookeeper 接受客户(hù)端(这里所说的客户端不是(shì)用户连接 Zookeeper服务(wù)器的客户(hù)端,而是(shì) Zookeeper 服务器集群(qún)中连接到 Leader 的 Follower 服务(wù)器)初(chū)始化连接时最长能忍受多少个心跳时间间(jiān)隔数。当已经超过(guò) 10 个心跳的时(shí)间(也(yě)就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信(xìn)息,那么表明(míng)这个客户端连接失败。总的时间(jiān)长度就是 5*2000=10 秒。
syncLimit:这个配置项标(biāo)识 Leader 与 Follower 之间发送消息,请求和应答时(shí)间长度,最长(zhǎng)不(bú)能超过多少个 tickTime 的(de)时间长(zhǎng)度,总的时间长度就是 2*2000=4 秒。
server.A=B:C:D:其中 A 是一(yī)个数字,表示这个是第几号服务(wù)器;B 是这个服务器的IP地(dì)址或/etc/hosts文件中映射了IP的主机名(míng);C 表示的是(shì)这个服务器与集群中的(de) Leader 服(fú)务器(qì)交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需(xū)要(yào)一个端口来重新(xīn)进行选举,选出一个新(xīn)的 Leader,而这个端(duān)口就是用(yòng)来执行选(xuǎn)举时(shí)服(fú)务器相互通信(xìn)的端口。如果是伪集群(qún)的配置方式,由于 B 都是一(yī)样,所(suǒ)以不同(tóng)的(de) Zookeeper 实例通信(xìn)端口号不能(néng)一样(yàng),所以要给它们(men)分配不同(tóng)的端口号(hào)。
