Centos7 下zookeeper3.4.9集群搭建

1 zookeeper介绍

Apache ZooKeeper是一个开源的分布式协调服务,用于管理大型分布式系统的节点配置信息和状态。它提供了一种简单且高效的方式来协调和管理分布式应用程序的配置信息、命名注册、同步和群体服务。

Apache ZooKeeper是分布式系统中的关键组件,它通过简单有效的方式解决了分布式环境中的数据一致性、配置管理、命名服务等关键问题。作为一个成熟的项目,ZooKeeper持续在性能、可靠性和易用性方面进行创新,为构建可扩展、高可用的分布式系统提供了强有力的支持。随着分布式计算的日益普及,ZooKeeper在现代云计算和大数据领域的重要性将持续增长。 

1.1 核心特性

  • 高可靠性: ZooKeeper通过在其服务器节点之间复制数据存储来提供高可靠性。如果一个节点失败,其他节点可以接管,确保系统的持续运行。

  • 数据模型: ZooKeeper维护一个类似文件系统的层次数据结构,允许用户在树中的节点上存储数据。

  • 数据变更通知: 客户端可以在ZooKeeper节点上设置监视点(watcher),当节点数据变更时,会通知这些客户端。

  • 顺序一致性: ZooKeeper保证了来自客户端的请求将按照其发送的顺序来处理。

  • 原子性: 操作要么全部成功,要么全部失败,不会出现中间状态。

  • 实时性: ZooKeeper保证了系统状态的最终一致性,但并不保证强实时性。

1.2 架构和组件

  • 集群模式: ZooKeeper可以运行在单个服务器上,也可以运行在一个由领导者和若干跟随者组成的集群模式中。

  • 节点(ZNode): ZooKeeper中的数据单元称为ZNode,它既可以像目录一样存储数据,也可以有子节点。

  • 会话: 客户端与ZooKeeper集群之间的交互是通过建立会话来进行的,每个会话都有唯一的会话ID。

  • 监视点(Watcher): Watcher机制允许客户端在指定的节点上设置监视点,以便在节点发生变化时获得通知。

  • 领导者选举: ZooKeeper集群通过内部的领导者选举机制来处理新加入的节点或现有节点的失效。

1.3 使用ZooKeeper

  • 配置管理: ZooKeeper可以存储和管理分布式应用中的配置信息。

  • 命名服务: 提供了一种为分布式系统中的资源和服务命名的方式。

  • 分布式锁: ZooKeeper可以用来实现分布式锁,以控制分布式系统中资源的访问。

  • 队列管理: 通过ZooKeeper实现分布式队列,支持任务的分发和协调。

  • 集群管理: 用于监控集群状态,实现集群中服务的自动恢复和负载均衡。

1.4 性能优化

  • 读写分离: 读操作可以在任何一个服务器节点上完成,而写操作会在领导者节点上进行,然后复制到其他节点。

  • 内存存储: ZooKeeper将所有数据存储在内存中,以提高数据访问速度。

  • 日志和快照: 使用事务日志和数据快照来保证数据的一致性和恢复能力。

1.5 安全性和管理

  • 访问控制: ZooKeeper支持基于ACL(Access Control Lists)的权限控制机制。

  • 安全通信: 支持使用SASL和SSL/TLS来保证数据传输的安全性。

  • 监控和诊断: 提供了多种工具和API来监控ZooKeeper集群的状态和性能。

1.6 社区和生态系统

  • 活跃的社区: ZooKeeper有一个活跃的开源社区,为用户提供支持、文档和资源。

  • 生态系统集成: 与Hadoop、Kafka、HBase等大数据技术栈紧密集成,是许多大数据平台的关键组件。

  • 扩展性: 提供了扩展接口,允许开发者根据需求扩展ZooKeeper的功能。

2 zookeeper集群搭建

2.1 zookeeper3.4.9下载

  sudo wget http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

  tar -xvf zookeeper-3.4.9.tar.gz //解压zookeeper

2.2 更改zookeeper的配置文件

 sudo cd zookeeper-3.4.9/

    sudo cp conf/zoo_sample.cfg conf/zoo.cfg   //拷贝实例配置文件

    sudo vi conf/zoo.cfg //编辑配置文件,三台zookeeper,三台主机host分别zoo1,zoo2,zoo3,编号为server.1,server.2,server.3

          tickTime=2000

          initLimit=10
          syncLimit=5
          dataDir=/var/data/zookeeper
          clientPort=2181
          server.1=zoo1:2888:3888
          server.2=zoo2:2888:3888

          server.3=zoo3:2888:3888

2.3  配置host文件

     sudo vi /etc/hosts      

     将zoo1,zoo2,zoo3对应的ip配置到hosts文件

2.4 配置zookeeper工作目录

   根据2中的配置,创建工作目录  

sudo mkdir -p /var/data/zookeeper
sudo cd /var/data/zookeeper
sudo vi myid   //创建id文件

   将本机对应的编号写入文件中,配置操作需要在集群中每台节点执行一遍

2.5 启动集群

   分别进入集群主机的zookeeper3.4.9目录,执行

   sudo   bin/zkServer.sh start

    所有机器执行完成后,查看每天机器的集群状态

    sudo bin/zkServer.sh status

    显示信息如下:(leader主机)

ZooKeeper JMX enabled by default
Using config: /home/li/workspace/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: leader

2.6 解决zookeeper只监听了ipv6地址的问题
 

​(1)关闭ipv6

     sudo vi  /etc/modprobe.d/dist.conf

     添加如下内容:

     alias net-pf-10 off

     alias ipv6 off

(2)设置ipv6开机不启动

      sudo chkconfig ip6tables off

(3)修改network配置

    sudo vi /etc/sysconfig/network

     添加如下内容

     NETWORKING_IPV6=no

  
(4)重启机器

     sudo reboot

(5)通过netstat -ntlp 查看启动的端口
​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧医疗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值