阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下Zookeeper集群的安装

179次阅读
没有评论

共计 3975 个字符,预计需要花费 10 分钟才能阅读完成。

顾名思义 zookeeper 就是动物园管理员,他是用来管 Hadoop(大象)、Hive(蜜蜂)、pig(小猪)的管理员,Apache Hbase 和 Apache Solr 的分布式集群都用到了 zookeeper;Zookeeper: 是一个分布式的、开源的程序协调服务,是 hadoop 项目下的一个子项目。

一、zookeeper 主要功能如下:

1、配置管理

在我们的应用中除了代码外,还有一些就是各种配置。比如数据库连接等。一般我们都是使用配置文件的方式,在代码中引入这些配置文件。但是当我们只有一种配置,只有一台服务器,并且不经常修改的时候,使用配置文件是一个很好的做法,但是如果我们配置非常多,有很多服务器都需要这个配置,而且还可能是动态的话使用配置文件就不是个好主意了。这个时候往往需要寻找一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴趣的都可以获得变更。比如我们可以把配置放在数据库里,然后所有需要配置的服务都去这个数据库读取配置。但是,因为很多服务的正常运行都非常依赖这个配置,所以需要这个集中提供配置服务的服务具备很高的可靠性。一般我们可以用一个集群来提供这个配置服务,但是用集群提升可靠性,那如何保证配置在集群中的一致性呢?这个时候就需要使用一种实现了一致性协议的服务了。Zookeeper 就是这种服务,它使用 Zab 这种一致性协议来提供一致性。现在有很多开源项目使用 Zookeeper 来维护配置,比如在 HBase 中,客户端就是连接一个 Zookeeper,获得必要的 HBase 集群的配置信息,然后才可以进一步操作。还有在开源的消息队列 Kafka 中,也使用 Zookeeper 来维护 broker 的信息。在 Alibaba 开源的 SOA 框架 Dubbo 中也广泛的使用 Zookeeper 管理一些配置来实现服务治理。

2、名字服务

名字服务这个就很好理解了。比如为了通过网络访问一个系统,我们得知道对方的 IP 地址,但是 IP 地址对人非常不友好,这个时候我们就需要使用域名来访问。但是计算机是不能是别域名的。怎么办呢?如果我们每台机器里都备有一份域名到 IP 地址的映射,这个倒是能解决一部分问题,但是如果域名对应的 IP 发生变化了又该怎么办呢?于是我们有了 DNS 这个东西。我们只需要访问一个大家熟知的 (known) 的点,它就会告诉你这个域名对应的 IP 是什么。在我们的应用中也会存在很多这类问题,特别是在我们的服务特别多的时候,如果我们在本地保存服务的地址的时候将非常不方便,但是如果我们只需要访问一个大家都熟知的访问点,这里提供统一的入口,那么维护起来将方便得多了。

3、分布式锁

其实在第一篇文章中已经介绍了 Zookeeper 是一个分布式协调服务。这样我们就可以利用 Zookeeper 来协调多个分布式进程之间的活动。比如在一个分布式环境中,为了提高可靠性,我们的集群的每台服务器上都部署着同样的服务。但是,一件事情如果集群中的每个服务器都进行的话,那相互之间就要协调,编程起来将非常复杂。而如果我们只让一个服务进行操作,那又存在单点。通常还有一种做法就是使用分布式锁,在某个时刻只让一个服务去干活,当这台服务出问题的时候锁释放,立即 fail over 到另外的服务。这在很多分布式系统中都是这么做,这种设计有一个更好听的名字叫 Leader Election(leader 选举)。比如 HBase 的 Master 就是采用这种机制。但要注意的是分布式锁跟同一个进程的锁还是有区别的,所以使用的时候要比同一个进程里的锁更谨慎的使用。

4、集群管理

在分布式的集群中,经常会由于各种原因,比如硬件故障,软件故障,网络问题,有些节点会进进出出。有新的节点加入进来,也有老的节点退出集群。这个时候,集群中其他机器需要感知到这种变化,然后根据这种变化做出对应的决策。比如我们是一个分布式存储系统,有一个中央控制节点负责存储的分配,当有新的存储进来的时候我们要根据现在集群目前的状态来分配存储节点。这个时候我们就需要动态感知到集群目前的状态。还有,比如一个分布式的 SOA 架构中,服务是一个集群提供的,当消费者访问某个服务时,就需要采用某种机制发现现在有哪些节点可以提供该服务(这也称之为服务发现,比如 Alibaba 开源的 SOA 框架 Dubbo 就采用了 Zookeeper 作为服务发现的底层机制)。还有开源的 Kafka 队列就采用了 Zookeeper 作为 Cosnumer 的上下线管理。

PDF 文档可以到 Linux 公社资源站下载:

—————————————— 分割线 ——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2017 年资料 / 3 月 / 5 日 /Linux 下 Zookeeper 集群的安装 /

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

二、zookeeper集群安装

1. 下载安装包

http://apache.fayea.com/zookeeper/zookeeper-3.4.6/

2. 解压压缩包

Linux 下 Zookeeper 集群的安装

3. 创建 solrclude 文件夹,将解压的 zookeeper 包拷贝到 solrclude 文件夹中

Linux 下 Zookeeper 集群的安装

4. 将 zookeeper-3.4.6 拷贝到/usr/local/solrcloud 下,复制三份分别并将目录名改为zookeeper1zookeeper2zookeeper3

Linux 下 Zookeeper 集群的安装

  5. 进入 zookeeper1 文件夹,创建 data 目录。并在 data 目录中创建一个 myid 文件内容为“1”(echo 1 >> data/myid)。

Linux 下 Zookeeper 集群的安装

6.进入 conf 文件夹,把 zoo_sample.cfg 改名为zoo.cfg

Linux 下 Zookeeper 集群的安装

7.修改zoo.cfg

 

dataDir=/usr/local/solrcloud/zookeeper1/data

 

clientPort=2181zookeeper2中为 2182zookeeper3 中为2183

 

添加:

 

server.1=192.168.198.130:2881:3881

 

server.2=192.168.198.130:2882:3882

 

server.3=192.168.198.130:2883:3883

Linux 下 Zookeeper 集群的安装

8. 对 zookeeper23 中的设置做第二步至第四步修改。

zookeeper2

myid内容为2

dataDir=/usr/local/solrcloud/zookeeper2/data

clientPort=2182

Zookeeper3

myid内容为3

dataDir=/usr/local/solrcloud/zookeeper3/data

clientPort=2183

9. 启动三个 zookeeper,查看状态

启动三个 zookeeper
/usr/local/solrcloud/zookeeper1/bin/zkServer.sh start
/usr/local/solrcloud/zookeeper2/bin/zkServer.sh start
/usr/local/solrcloud/zookeeper3/bin/zkServer.sh start
查看集群状态:/usr/local/solrcloud/zookeeper1/bin/zkServer.sh status
/usr/local/solrcloud/zookeeper2/bin/zkServer.sh status
/usr/local/solrcloud/zookeeper3/bin/zkServer.sh status

Linux 下 Zookeeper 集群的安装

在 CentOS7 上安装 Zookeeper-3.4.9 服务 http://www.linuxidc.com/Linux/2016-09/135052.htm

ZooKeeper 官方文档翻译——ZooKeeper Overview 3.4.6  http://www.linuxidc.com/Linux/2016-12/138025.htm

CentOS 下 ZooKeeper 3.4.8 集群环境搭建 http://www.linuxidc.com/Linux/2016-12/137958.htm

CentOS 7 下 Zookeeper 集群安装 http://www.linuxidc.com/Linux/2017-01/139733.htm

ZooKeeper 学习总结  http://www.linuxidc.com/Linux/2016-07/133179.htm

Linux 下安装 Zookeeper 集群 http://www.linuxidc.com/Linux/2017-01/139545.htm

Zookeeper3.4.6 的安装 http://www.linuxidc.com/Linux/2015-05/117697.htm

CentOS 7 下安装 Zookeeper 单机版  http://www.linuxidc.com/Linux/2015-05/117697.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141400.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3975字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中