zookeeper(1)——zookeeper服务器集群搭建配置

2023-05-16

Zookeeper分布式集群管理系统

Authorxusy

参考教程:http://www.cnblogs.com/z-sm/p/5691752.html

1.zookeeper下载:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.3.6/

2.安装参照:http://blog.csdn.net/lihao21/article/details/51778255

ZookeeperHadoop的开源子项目,在分布式系统架构中被大量运用,从而减少分布式架构的复杂度。典型应用的场景:数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、master选举、分布式锁、分布式队列。

分布式消息服务kafkaHbaseHadoop等分布式大数据处理都会用到zookeeperZookeeper是分布式服务框架,主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等等。

Zookeeper的核心是广播,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议。

Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或领导者崩溃后,Zab就进入到了恢复模式,当领导者被选举出来,且大多数server完成了和leader的状态同步后,恢复模式就结束了。

状态同步保证了leaderserver具有相同的系统状态。为了保证事物状态的一致性,zookeeper采用了递增的事物id号(zxid)来标示事物。

所有的提议(proposal)都在被提出的时候加上了zxid。实现中zxid是一个64位的数字,它高32位是epoch用来标示leader关系是否改变,每次一个leader被选出来,它都会有一个新的epoch,标示当前属于那个leader的统治时期。低32位用于递增计数。

每个server在工作中都会有三种状态:

1、LOOKING:当前server不知道leader是谁,正在搜寻

2、LEADING:当前server即为选举出来的leader

3、FOLLOWINGleader已经选举出来,当前server与之同步

3.Zookeeper的安装模式

Zookeeper的安装分为三种模式:

A)、单机模式

B)、集群伪分布模式

C)、集群模式

4.开始安装

服务器集群为:192.168.56.100192.168.56.101192.168.56.102

 

建立文件上传及安装目录:mkdir /usr/local/zookeeper

 

每个服务器都上传zookeeper-3.3.6.tar.gz

执行:tar -zxvf zookeeper-3.3.6.tar.gz

改名:mv zookeeper-3.3.6 zookeeper

 

 

调整zoo.cnf文件

进入到cnf目录下,执行:cp zoo-simple.cnf zoo.cnf

 

 

打开zoo.cnf文件进行集群配置

 

# The number of milliseconds of each tick

 

tickTime=2000

 

# The number of ticks that the initial

 

# synchronization phase can take

 

initLimit=10

 

# The number of ticks that can pass between

 

# sending a request and getting an acknowledgement

 

syncLimit=5

 

# the directory where the snapshot is stored.

 

# dataDir=/tmp/zookeeper

 

dataDir=/home/zookeeper/data

 

dataLogDir=/home/zookeeper/logs

 

# the port at which the clients will connect

 

clientPort=10075

 

Server.100=192.168.56.100:2888:3888

 

Server.101=192.168.56.101:2888:3888

 

Server.102=192.168.56.102:2888:3888

 

 

 

由于dataDirdataLogDir 对应的目录为 /home/zookeeper/data;/home/zookeeper/logs

需要执行创建对应目录:mkdir -p /home/zookeeper/data;/home/zookeeper/logs

并且在/home/zookeeper/data目录下创建 myid 文件

三台服务器对应myid文件的中的数字分别为:100101102

创建myid文件命令:touch myid 或者 vi myid

 

 

执行 zkServer.sh start 开始zookeeper服务

 

 

执行 zkServer.sh status 查看zookeeper服务器状态,可以查看哪台服务为leader,哪些是follower

 

 

leader服务器中执行:zkCli.sh -server 192.168.56.100:2181,192.168.56.101:2181,192.168.56.102:2181

来连接zookeeper集群

 

 

连接成功后可以看到这样的日志输出:

 

 

从日志可以看出,客户端连接的是 102leader) 服务器(连接上哪台服务器的zookeeper进程是随机的)、客户端已经成功连接上了zookeeper集群

试验:当杀死leader服务器进程后,zookeeper自动进入了恢复模式,选择了 101 服务器作为了leader

 

 

问题待解决:启动zookeeper服务,没法生成zookeeper_server.pid文件

服务能够正常启动,但是没法创建zookeeper_server.pid 文件

网上各种方案尝试了,但是还是不行,希望后面能够找出好的解决方案。

 后来经过各种检查,终于发现了问题,那就是 zoo.cfg 不能出现空行,包括# 注释的行也不行,这也太不智能了,无奈只能讲所有的注释删掉。具体如下:

 

执行以上操作,我们完成了zookeeper的安装配置,即能够正常使用了

============================================================================================

参照:http://nileader.blog.51cto.com/1381108/932156

在使用zookeeper过程中,我们知道,会有dataDir dataLogDir 两个目录,分别用于snapshot和事务日志的输出。

正常运动过程中,ZK会不断的把快照数据及事物日志输出到这两个目录,并且如果没有认为操作的话,ZK自己是不会清理这些文件的,所以需要进行定时清理。我这边通过手写shell脚本来定时操作执行。

删除日志脚本,每天23:59分定时执行:

#!/bin/bash

 

#napshot file dir

dataDir=/home/zookeeper/data/version-2

#tran log dir

dataLogDir=/home/zookeeper/logs/version-2

#Leave 10 files

count=10

count=$[$count+1]

ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f

ls -t $dataDir/snapshot.* | tail -n +$count | xargs rm -f

以上这个脚本定义了删除对应两个目录中的文件,保留最新的10个文件,可以将他写到crontab中,设置为每天23:59执行一次就可以了。

然后进入到该脚本文件目录 chmod +x zookeeperclean.sh 添加执行权限,否则会报错  Permission denied

 

开始设置定时

crontab -e

添加:59 23 * * * /home/zookeeper/zookeeperclean.sh

执行每天 23:59分准时执行

 

 

转载于:https://www.cnblogs.com/xushuyi/articles/7155471.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zookeeper(1)——zookeeper服务器集群搭建配置 的相关文章

  • ZooKeeper(一):基础介绍

    文章目录 什么是 ZooKeeper ZooKeeper 发展历史 ZooKeeper 应用场景 ZooKeeper 服务的使用 ZooKeeper 数据模型 data tree 接口 znode 分类 总结 什么是 ZooKeeper Z
  • 【Dubbo】Dubbo(二)简单实践

    Dubbo 二 实践 安装注册中心 下载zookeeper 在zookeeper路径下新增date文件夹存储数据 conf路径下新增zoo cfg 编辑zoo cfg 修改数据目录dataDir为新增的data文件夹 其他与zoo samp
  • zookeeper入门到精通03——zookeeper集群搭建

    zookeeper集群搭建 3 1 多虚拟机环境搭建 3 2 zookeeper集群搭建 3 1 多虚拟机环境搭建 我们需要搭建zookeeper集群 而由于zookeeper的的服务器数量需要设置为单数 前文介绍了原因 一个zookeep
  • 五:Zookeeper分布式一致性协议ZAB源码剖析

    目录 ZAB协议介绍 消息广播 崩溃恢复 数据同步 ZAB写数据源码流程图 整个Zookeeper就是一个多节点分布式一致性算法的实现 底层采用的实现协议是ZAB ZAB协议介绍 ZAB 协议全称 Zookeeper Atomic Broa
  • ZooKeeper(八)伸缩性

    一 ZooKeeper中Observer 1 1 ZooKeeper角色 经过前面的介绍 我想大家都已经知道了在ZooKeeper集群当中有两种角色Leader和Follower Leader可以接受client 请求 也接收其他Serve
  • 服务 zookeeper 不支持 chkconfig

    在给zk设置开机启动的时候 报错 服务 zookeeper 不支持 chkconfig 因为配置文件是从别人的博客了拷贝的 只是改了个性化的部分 然后就粘贴到服务器上了 服务器上使用service能正常执行start stop status
  • dubbo zookeeper spring mvc简单整合的工程例子demo

    该demo只是简单的集成 包括了5个工程 都是maven结构的 如下图所示 服务端 dubbo demo server api 服务接口定义工程 dubbo demo server biz 服务接口实现工程 web dubbo server
  • 微服务全栈:深入核心组件与开发技巧

    文章目录 1 服务注册与发现 1 1 客户端注册 ZooKeeper 1 2 第三方注册 独立的服务Registrar 1 3 客户端发现 1 4 服务端发现 1 5 Consul 1 6 Eureka 1 7 SmartStack 1 8
  • Windows系统下zookeeper启动报错JAVA_HOME is incorrectly set

    最近在Windows系统下 下载了zookeeper 3 5 2 alpha这个版本的zookeeper 把配置文件zoo example cfg重命名为zoo cfg后 直接双击zkServer cmd文件启动结果命令行窗口闪一下就消失了
  • docker中的zookeeper安装、连接及常见命令

    一 docker安装 1 搜索一下Zookeeper镜像 这一步可以省略 docker search zookeeper 2 从Docker上下载zookeeper docker pull zookeeper 3 启动Zookeeper镜像
  • ZooKeeper的一些总结

    文章目录 前言 一 Zookeeper是什么 二 Zookeeper用来做什么 三 Zookeeper的优势是什么 四 为什么用zookeeper 五 zookeeper解决了什么问题 总结 前言 Zookeeper作为一个分布式协调服务
  • INFO zookeeper.ClientCnxn: Opening socket connection to server***/192.168.80.151:2181. Will not

    at org apache zookeeper ClientCnxnSocketNIO doTransport ClientCnxnSocketNIO java 361 at org apache zookeeper ClientCnxn
  • kafka详解及集群环境搭建

    一 kafka详解 安装包下载地址 https download csdn net download weixin 45894220 87020758 1 1Kafka是什么 1 Kafka是一个开源消息系统 由Scala写成 是由Apac
  • 手把手带你撸zookeeper源码系列目录

    手把手带你撸zookeeper源码 前言 手把手带你撸zookeeper源码 配置文件 手把手带你撸zookeeper源码 如何启动一个zookeeper服务 手把手带你撸zookeeper源码 从源码角度分析zookeeper启动时都做了
  • Zookeeper 基本操作

    Zookeeper 基本操作 文章目录 Zookeeper 基本操作 1 查看zk的运行状态 2 客户端连接zk 3 ls 查看 4 get 获取节点数据和更新信息 5 stat 获得节点的更新信息 6 ls2 ls命令和stat命令的整合
  • Dubbo源码分析-服务导出源码解析(三)

    在这个版本中dubbo会通过注解 PostConstruct把ServiceBean实例放到ConfigManager中 public abstract class AbstractConfig implements Serializabl
  • 微服务框架

    微服务框架 1 SOA思想 面向服务的架构 SOA 是一个组件模型 它将应用程序的不同功能单元 称为服务 进行拆分 并通过这些服务之间定义良好的接口和协议联系起来 接口是采用中立的方式进行定义的 它应该独立于实现服务的硬件平台 操作系统和编
  • Zookeeper(三)—分布式锁实现

    一 独占锁原理 独占锁是利用zk同一目录下不能创建多个相同名称的节点这个特性 来实现分布式锁的功能 竞争锁的分布式系统 都在zk根目录下创建一个名为lock的节点 创建节点成功的系统 说明抢到了这把锁 没有创建成功的系统 说明这个节点已经被
  • Zookeeper 和 Dubbo 的关系?

    Zookeeper的作用 zookeeper用来注册服务和进行负载均衡 哪一个服务由哪一个机器来提供必需让调用者知道 简单来说就是ip地址和服务名称的对应关系 当然也可以通过硬编码的方式把这种对应关系在调用方业务代码中实现 但是如果提供服务
  • 终于找到了最新版的Zookeeper入门级教程,建议收藏!

    小熊学Java https javaxiaobear cn 1 分布式一致性 1 CAP 理论 CAP 理论指出对于一个分布式计算系统来说 不可能同时满足以下三点 一致性 在分布式环境中 一致性是指数据在多个副本之间是否能够保持一致的特性

随机推荐