`
邢邢色色
  • 浏览: 226081 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ZooKeeper学习之配置【1】基本配置

阅读更多

ZooKeeper的设计对开发人员来说很友好,但同时也对运维人员友好。当集群越来越大时,管理操作也便得复杂起来,稳妥的管理也变得重要起来。ZooKeeper应该是一个标准的分布式系统组件,一个运维团队可以轻松的学习并管理它。虽说ZooKeeper很容易跑起来,但对于一些配置选项必须牢记在心。你应该很熟悉你的ZooKeeper服务,并使用一些管理工具方便的管理它。

 

为了让一个ZooKeeper服务正确工作,必须正确的配置好它,只有这样,基于ZooKeeper工作的其他分布式产品才能正常工作。例如,所有的ZooKeeper投票服务器必须拥有一致的配置。这是很多人的经验之谈,不一致的配置是普遍发生的问题的原因。

 

想要配置得好,需要理解一些基本概念,其实不难掌握,关键是要理解它们是什么,是如何工作的。 

 

本文开始陆续的详细讲解所有的配置选项,大部分配置项一般都有一个默认的值,很多都应该根据实际情况进行优化。因为ZooKeeper的设计很容易使用,有一些在不明白具体的配置项就开始使用,一开始工作得还好,但后续很可能会出问题。所以你需要花些时间来深入学习配置项,你会发现你将可以得到更好的性能,并能更容易的诊断问题。本文会带你了解每个配置项的含义,为什么会需要使用它们。

 

每一个ZooKeeper进程启动的时候会去读一个名为zoo.cfg的配置文件。担任不同角色(如leader,follower后者observer)的server共享一些基本的配置。在数据目录的myid文件用来区分各个server。每一个数据目录必须是独立的,所以myid文件需要放在数据目录中。myid存放的是server id,用来在配置文件中标识每一个server。当然,如果组建集群的话,每一个server必须有一个自己专属的配置文件。

 

配置选项一般都在配置文件中设置。每一个选项也可以通过Java system property进行设置,通常以zookeeper.property的形式使用。在启动server的使用使用-D选项来指定。下文中如果可以通过这种方式启动的话,会在圆括号中标明。在配置文件中的选项会比Java system property有更高的优先权。

 

基本配置

有一些配置选项没有默认值,所以必须配置它们:

 

clientPort

一个TCP端口,提供client来连接。默认会监听所有的网络接口,除非设置了clientPortAddress配置。这个端口可以随意设置,只要不与其他端口冲突,默认端口为2181.

 

dataDir和dataLogDir

dataDir目录用来存放快照文件。如果当前的server是集群的一部分,则id文件也放在这个目录。此目录不需要放在一个专用的设备。因为是使用一个后台线程去写这个文件的,不需要锁住放在内存中的data tree,当完成快照之前,写操作的数据不会sync到磁盘(不会落地)。

 

如果没有设置dataLogDir,事务日志也会放到这个目录。事务日志所在的设备最好是专用的。server会试图对事务日志做顺序的写操作,因为在server对一个事务进行ack之前数据必须sync到磁盘。同一个设备的其他磁盘操作,比如生成快照,会显著的影响写操作,在sync期间把磁盘的磁头调到别的地方去。所以,最佳实践是为事务日志设置一个专用的设备,并把dataLogDir配到这个设备的一个目录上。

 

tickTime

指明一个tick的长度,单位是毫秒。tick是时间的一个基本度量,它决定了session超时的bucket的size(前文的文章有提过)。

 

超时时间就是根据以tick为单位进行设置的。这意味着,超时时间的下限就是1个tick的时间,因为最小只能设置为1个tick。最小的cilent的session超时时间是2个tick。

 

默认的tickTime为3000毫秒。调低这个值会减少超时时间。但是也会引起网络流量(心跳)和CPU时间(session bucket处理)的增加。

分享到:
评论

相关推荐

    Zookeeper学习笔记.pdf

    ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:**分布式锁服务**。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:**...

    zookeeper部署与基本操作.docx

    1.Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。 2.编辑myid文件,在文件中添加服务器的编号时,要小心不要打错 3.从...

    ZooKeeper入门培训

    在公司内部做培训时自己整理的zookeeper入门文档,分享给大家。...1、基本概念 2、安装配置 3、简单操作 4、Zookeeper的api使用 5、Zookeeper的典型应用场景 【注意】仅供个人学习使用,非本人同意,请勿传播!

    大数据学习笔记

    第二部分 ZOOKEEPER学习 24 第6章 zookeeper介绍 25 6.1 zookeeper简介 25 6.2 分布式应用程序 25 6.3 Apache Zookeeper意味着什么? 26 第7章 zookeeper基本组成与工作流程 27 第8章 zookeeper的leader节点选择 31 ...

    想学习的看过来了spring4.0、springboot、springcloud详细视频课程(硅谷)

    45.硅谷学习_SpringCloud_Zuul路由基本配置 46.硅谷学习_SpringCloud_Zuul路由访问映射规则 47.硅谷学习_SpringCloud_Config分布式配置中心是什么 48.硅谷学习_SpringCloud_Config服务端与Github通信 49.硅谷...

    【spring-boot-seckill分布式秒杀系统 v1.0】从0到1构建的java秒杀系统源码+安装说明

    spring-boot-seckill分布式秒杀系统是一个用SpringBoot开发的从0到1构建的分布式秒杀系统,项目案例基本成型,逐步完善中。 开发环境: JDK1.8、Maven、Mysql、IntelliJ IDEA、SpringBoot1.5.10、zookeeper3.4.6、...

    fabcluster:织物部署hadoop,hbase,zookeeper,kafka和spark

    您可以使用它在群集中设置基本配置,包括主机,禁用防火墙,创建新用户并在新用户角色的控制下设置以下所有部署和管理。 在开始阅读和使用我的程序之前,建议您阅读一些有关python和fabric的教程。 (在编写此程序...

    大数据精选入门指南,包括大数据学习路线、大数据技术栈思维导图

    大数据学习路线 大数据技术栈思维导图 大数据常用软件安装指南 一、Hadoop 分散文件存储系统 —— HDFS 多元计算框架——MapReduce 集群资源管理器 —— YARN Hadoop单机伪集群环境搭建 Hadoop 云服务环境搭建 HDFS...

    大数据学习计划.pdf

    本模块通过学习 Hive、Impala 等⼤数据 SQL 分析组件,让⽤户将隐匿在泥沙之下的数据价值挖掘出来。 所以在第三部分的学习中我们需要达到以下⽬标: 1、 安装部署 Hive; 理解 Hive 架构及执⾏原理 ; Hive 的优化...

    在线商城单节点搭建.zip

    该资源包包含了zookeeper,Kafka,gpmall-repo包以及搭建所需要的全部资源。单节点在线商城通常是指一个简单的、单一实例的在线商城系统,它运行在一个服务器节点上。这种系统通常用于小型的电子商务业务或者用于...

    spring-boot-seckill分布式秒杀系统 v1.0/java秒杀系统源码+安装说明

    spring-boot-seckill分布式秒杀系统是一个用SpringBoot开发的从0到1构建的分布式秒杀系统,项目案例基本成型,逐步完善中。 开发环境: JDK1.8、Maven、Mysql、IntelliJ IDEA、SpringBoot1.5.10、zookeeper3.4.6、...

    手把手教你搭建分布式Hadoop集群视频教程(视频+讲义+笔记+软件+配置)

    10_分布式集群搭建:集群环境说明及基本配置 11_分布式集群搭建:集群安装配置 12_分布式集群搭建:安装配置部署Zookeeper 集群 13_分布式集群搭建:规划设计集群服务分布 14_分布式集群搭建:HADOOP分布式集群...

    Java思维导图xmind文件+导出图片

    深入分析Zookeeper在disconf配置中心的应用 基于Zookeeper Watcher 核心机制深入源码分析 Zookeeper集群升级、迁移 基于Zookeeper实现分布式服务器动态上下线感知 深入分析Zookeeper Zab协议及选举机制源码解读...

    最新kafka入门高手视频教程(10.79G)

    第11节:Zookeeper安装启动.avi 第12节:kafka配置.avi3s!?;Y1Y;\;r 第13节:Kafka基本概念及使用演示.avi 第14节:内容概述.avi,t7r-q%z#?3j 第15节:五类Kafka客户端作用和区别.avi 第16节:学习准备-初始化工程.avi 第...

    Hadoop实战

    206第11章 Hive及Hadoop群 20711.1 Hive 20711.1.1 安装与配置Hive 20811.1.2 查询的示例 21011.1.3 深入HiveQL 21311.1.4 Hive小结 22111.2 其他Hadoop相关的部分 22111.2.1 HBase 22111.2.2 ZooKeeper 22111.2.3 ...

    Hadoop实战中文版.PDF

    Hive及Hadoop群 20711.1 Hive 20711.1.1 安装与配置Hive 20811.1.2 查询的示例 21011.1.3 深入HiveQL 21311.1.4 Hive小结 22111.2 其他Hadoop相关的部分 22111.2.1 HBase 22111.2.2 ZooKeeper ...

    Hbase+Spring boot实战分布式文件存储

    9-1 Zookeeper安装与HBase配置优化 9-2 Hos开发逻辑梳理 9-3 Hos模块划分及mybatis配置 第10章 子模块-用户管理模块 Hos服务用户管理模块开发,基于第九章的数据库操作模块,开发相关的实体类对用户的增删改查操作...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制...

    Java微服务架构163课

    全套微服务架构,视频学习java微服务架构,包括如下 第1章 微服务简介 001构建单体应用 002微服务解决复杂问题 003微服务的优点 004微服务的缺点 第2章 Linux使用 005Linux 简介 006Linux 与 Windows ...

    autoinstallhadoop:自动安装JDK,Maven,Ant,Maven,Hadoop脚本

    autoinstallhadoop ...全是Java有关的框架,主要目的在于安装Hadoop,其他的都是附带的基本配置 本脚本能够快速在Linux上安装JAVA环境,并部署hadoop,其中关于hadoop,hbase和Zookeeper的配置 分别在压缩包内的

Global site tag (gtag.js) - Google Analytics