zookeeper介绍和搭建

这篇具有很好参考价值的文章主要介绍了zookeeper介绍和搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、zookeeper简介

1、zookeeper概念
ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:分布式锁服务。分布式应用可以基于它实现更高级的服务,实现诸如同步服务、配置维护和集群管理或者命名的服务。

Zookeeper服务自身组成一个集群,2n+1个(奇数)服务允许n个失效,集群内一半以上机器可用,Zookeeper就可用。

假设 3台机器组成的集群,可以有允许一台失效,如果有2台失效,这个集群就不可用,1<1.5,一般的搭建zookeeper集群时,以奇数台机器来搭建。目的:是为了提高容错能允许多损失一台。

2、zookeeper数据结构
ZooKeeper数据模型的结构与Linux文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每一个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。

二、zookeeper工作机制

Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。也就是说 Zookeeper =文件系统+通知机制。

1、zookeeper特点
(1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。

(2)Zookeepe集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。

(3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。

(4)更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行,即先进先出。

(5)数据更新原子性,一次数据更新要么成功,要么失败。

(6)实时性,在一定时间范围内,Client能读到最新数据。

2、zookeeper应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

统一命名服务

在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。例如:IP不容易记住,而域名容易记住。

统一配置管理
(1)分布式环境下,配置文件同步非常常见。一般要求一个集群中,所有节点的配置信息是一致的,比如Kafka集群。对配置文件修改后,希望能够快速同步到各个节点上。

(2)配置管理可交由ZooKeeper实现。可将配置信息写入ZooKeeper上的一个Znode。各个客户端服务器监听这个Znode。一旦 Znode中的数据被修改,ZooKeeper将通知各个客户端服务器。

统一集群管理

(1)分布式环境中,实时掌握每个节点的状态是必要的。可根据节点实时状态做出一些调整。

(2)ZooKeeper可以实现实时监控节点状态变化。可将节点信息写入ZooKeeper上的一个ZNode。监听这个ZNode可获取它的实时状态变化。

服务器动态上下线

客户端能实时洞察到服务器上下线的变化。

软负载均衡

在Zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求。

三、zookeeper集群部署

官方下载地址:https://archive.apache.org/dist/zookeeper/

3.1 实验准备

 192.168.10.40         zookeeper
 192.168.10.50         zookeeper
 192.168.10.60         zookeeper
 三台虚拟机同时进行
 systemctl stop firewalld 
 setenforce 0
 yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel #安装jdk包
 tar xf apache-zookeeper-3.5.7-bin.tar.gz -C /usr/local/zookeeper-3.5.7   #因为之前做了解压所以直接覆盖了

zookeeper介绍和搭建

3.2 修改配置文件

cd /usr/local/zookeeper-3.5.7/conf/              #切换目录
cp zoo_sample.cfg zoo.cfg              #备份
vim zoo.cfg                                #编辑

添加目录路径
 dataDir=/usr/local/zookeeper-3.5.7/data        
 dataLogDir=/usr/local/zookeeper-3.5.7/logs
添加集群ip 
 server.1=192.168.10.40:3188:3288        
 server.2=192.168.10.50:3188:3288
 server.3=192.168.10.60:3188:3288
 保存退出

zookeeper介绍和搭建

3.3 创建目录以及拷贝文件

拷贝整个文件到其他二台机子上
scp -r /usr/local/zookeeper-3.5.7/ 192.168.10.50:/usr/local/         
scp -r /usr/local/zookeeper-3.5.7/ 192.168.10.60:/usr/local/
三台机子同时创建目录
mkdir /usr/local/zookeeper-3.5.7/data
mkdir /usr/local/zookeeper-3.5.7/logs

DataDir指定的目录下创建一个 myid 的文件(每台都需要创建自己单独的)
192.168.10.40
echo 1 > /usr/local/zookeeper-3.5.7/data/myid
192.168.10.50
echo 2 > /usr/local/zookeeper-3.5.7/data/myid
192.168.10.60
echo 3 > /usr/local/zookeeper-3.5.7/data/myid

zookeeper介绍和搭建

3.4 配置Zookeeper启动脚本

vim /etc/init.d/zookeeper

#!/bin/bash
#chkconfig:2345 20 90
#description:Zookeeper Service Control Script
ZK_HOME='/usr/local/zookeeper-3.5.7'
case $1 in
start)
	echo "---------- zookeeper 启动 ------------"
	$ZK_HOME/bin/zkServer.sh start
;;
stop)
	echo "---------- zookeeper 停止 ------------"
	$ZK_HOME/bin/zkServer.sh stop
;;
restart)
	echo "---------- zookeeper 重启 ------------"
	$ZK_HOME/bin/zkServer.sh restart
;;
status)
	echo "---------- zookeeper 状态 ------------"
	$ZK_HOME/bin/zkServer.sh status
;;
*)
    echo "Usage: $0 {start|stop|restart|status}"
esac

chmod  +x /etc/init.d/zookeeper        # 给脚本加上执行权限
scp -r /etc/init.d/zookeeper   192.168.10.50:/etc/init.d/    #拷贝到其他二台机子上
scp -r /etc/init.d/zookeeper   192.168.10.60:/etc/init.d/    #拷贝到其他二台机子上

chkconfig --add zookeeper
service zookeeper start                    #切记三台机子都配置完脚本再启动

zookeeper介绍和搭建
zookeeper介绍和搭建

3.5 查看启动状态

三台虚拟机
service  zookeeper status

zookeeper介绍和搭建
zookeeper介绍和搭建
zookeeper介绍和搭建文章来源地址https://www.toymoban.com/news/detail-410202.html

到了这里,关于zookeeper介绍和搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Zookeeper基本概念与架构

    Zookeeper是一个开源的分布式协调服务,用于构建分布式应用程序和系统。它提供了一种可靠的、高性能的、分布式协同的方式来管理配置信息、提供原子性的数据更新、实现集群管理、提供可靠的通信和同步服务。Zookeeper的核心是一个高性能、可靠的分布式协同服务,它可以

    2024年02月22日
    浏览(32)
  • zookeeper:简介及常用命令

    目录 一、Zookeeper简介 二、Zookeeper服务端常用命令 1、启动ZooKeeper服务 2、查看ZooKeeper服务状态 3、停止ZooKeeper服务 4、重启ZooKeeper服务 三、Zookeeper客户端常用命令 1、连接ZooKeeper服务端  2、断开连接:quit  3、查看命令帮助:help 4、显示指定目录下节点:ls 目录 5、创建节点:

    2024年02月15日
    浏览(33)
  • Zookeeper简介、原理和功能?

    一.Zookeeper简介 Zookeeper是一个开源的、分布式的应用程序协调服务。它提供的功能包括:命名服务、配置管理、集群管理、分布式锁、负载均衡、分布式队列等。 (1)命令服务。可以简单理解为电话簿。打电话前,先查找这个人名对应的号码。分布式环境下,经常需要对应用

    2024年02月05日
    浏览(34)
  • Zookeeper的功能简介

    1.ZooKeeper是什么?   ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户

    2024年02月06日
    浏览(31)
  • zookeeper简介

    Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知

    2024年01月17日
    浏览(30)
  • ZooKeeper 简介

    1、概念介绍 ZooKeeper 是一个开放源码的分布式应用程序协调服务,为分布式应用提供一致性服务的软件,由雅虎创建,是 Google Chubby 的开源实现,是 Apache 的子项目,之前是 Hadoop 项目的一部分,使用 Java 实现。 ZooKeeper 是一个典型的分布式数据一致性解决方案,分布式应用程

    2024年01月19日
    浏览(25)
  • Linux-一篇文章,速通Hadoop集群之伪分布式,完全分布式,高可用搭建(附zookeeper,jdk介绍与安装)。

    文章较长,附目录,此次安装是在VM虚拟环境下进行。文章第一节主要是介绍Hadoop与Hadoop生态圈并了解Hadoop三种集群的区别,第二节和大家一起下载,配置Linux三种集群以及大数据相关所需的jdk,zookeeper,只需安装配置的朋友可以直接跳到文章第二节。同时,希望我的文章能帮

    2024年03月19日
    浏览(48)
  • Zookeeper的基本概念以及安装

            Zookeeper是一个分布式的(多台机器同时干一件事情),开源的分布式应用程序协调服务,是Google公司Chubby产品,是Hadoop和Base重要的组件,.它是一个分布式应用程序提供一致性的服务的软件,提供的功能包括:配置服务,域名服务,分布式同步,组服务等         Zookeeper目标封

    2024年02月15日
    浏览(47)
  • 【zookeeper】zookeeper介绍

    在学习ZooKeeper之前需要先了解一种技术——分布式协调技术。那么什么是分布式协调技术?其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成\\\"脏数据\\\"的后果。这时,有人可能会说这个简单,写一个调度

    2024年02月10日
    浏览(32)
  • 答应我,不会这些概念,简历不要写 “熟悉” zookeeper

    整理了一些Java方面的架构、面试资料(微服务、集群、分布式、中间件等),有需要的小伙伴可以关注公众号【程序员内点事】,无套路自行领取 一口气说出 9种 分布式ID生成方式,面试官有点懵了 面试总被问分库分表怎么办?你可以这样怼他 一口气说出 6种 @Transactional 注解

    2024年03月20日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包