`

征服ZooKeeper之基本配置

阅读更多

人,总免不了有心结,限制着自己,难以前行。对于ZooKeeper的理解,以及实践也拖了很久,今天用零散时间学习一下,补点干货。酷

   

一、简述

Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来选举Leader(基于Fast Paxos协议),配置信息维护等,在一个分布式的环境中,需要一个Master实例或存储一些配置信息,确保文件写入的一致性等。
ZooKeeper是一个分布式,开放源码的分布式应用程序协调服务,包含一个简单的原语集,是Hadoop和Hbase的重要组件,提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

二、配置服务

我直接在ubuntu服务器上开搞了,跳过下载、安装等基本操作,直奔主题。
ZooKeeper建议使用hostname,而非ip。这需要对主机的/etc/hostname/etc/hosts做host绑定。
ZooKeeper以Fast Paxos算法为基础,用于完成leader的选举工作,所以至少需要3个节点。
为此,我准备了以下3个节点:
192.168.158.135 ubuntu-zookeeper-01
192.168.158.151 ubuntu-zookeeper-02
192.168.158.152 ubuntu-zookeeper-03

      首先,为各个主机配置自己的hostname:

 

sudo vim /etc/hostname 

     例如,在192.168.158.135机器上配置/etc/hostname为:

ubuntu-zookeeper-01

     然后,为各个主机配置host绑定:

sudo vim /etc/hosts

    例如:
    

    在各主机上做好host绑定。

达到如下效果,说明配置ok
zlex@ubuntu-zookeeper-01:~$ ping ubuntu-zookeeper-02
PING ubuntu-zookeeper-02 (192.168.158.151) 56(84) bytes of data.
64 bytes from ubuntu-zookeeper-02 (192.168.158.151): icmp_seq=1 ttl=64 time=5.64 ms
64 bytes from ubuntu-zookeeper-02 (192.168.158.151): icmp_seq=2 ttl=64 time=0.643 ms
64 bytes from ubuntu-zookeeper-02 (192.168.158.151): icmp_seq=3 ttl=64 time=0.821 ms
64 bytes from ubuntu-zookeeper-02 (192.168.158.151): icmp_seq=4 ttl=64 time=0.873 ms
^C
--- ubuntu-zookeeper-02 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 0.643/1.994/5.641/2.107 ms

 
    接下来配置zookeeper的配置,让它快速跑起来。

    把刚才准备好的hostname配置在这个文件中:

    

sudo vim /etc/zookeeper/conf/zoo.cfg

    
    
 配置文件的说明:

    • tickTime :基本事件单元,以毫秒为单位。这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
    • dataDir :存储内存中数据库快照的位置,顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
    • clientPort :这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
    • initLimit:这个配置项是用来配置 Zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,当已经超过 5 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。
    • syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
    • server.A = B:C:D : A表示这个是第几号服务器,B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader

    接着,使server.1~server.3 与各主机的 /etc/zookeeper/conf/myid 相对应:

sudo vim /etc/zookeeper/conf/myid   

    例如,ubuntu-zookeeper-01server.1相对应,其myid的值就是1

$ cat /etc/zookeeper/conf/myid
1

    如果出现类似错误:

zlex@ubuntu-zookeeper-01:~$ sudo /usr/share/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /etc/zookeeper/conf/zoo.cfg
Error contacting service. It is probably not running.

   说明myid文件中与hostname中对应的标示不一致,即ubuntu-zookeeper-01server.1相对应,myid的值应为1。

    现在,我们就可以启动服务了:

sudo /usr/share/zookeeper/bin/zkServer.sh start

    具体可用的命令有:

{start|start-foreground|stop|restart|status|upgrade|print-cmd}

    最后,观察启动日志:    

tail -f /var/log/zookeeper/zookeeper.log 

    究竟哪台机器成为leader:

zlex@ubuntu-zookeeper-01:~$ sudo /usr/share/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /etc/zookeeper/conf/zoo.cfg
Mode: follower

zlex@ubuntu-zookeeper-02:~$ sudo /usr/share/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /etc/zookeeper/conf/zoo.cfg
Mode: follower

zlex@ubuntu-zookeeper-03:~$ sudo /usr/share/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /etc/zookeeper/conf/zoo.cfg
Mode: leader

 

    服务都启动了,ubuntu-zookeeper-03成为Leader节点了~微笑

    暂时就到这里,接下来补充服务验证。

  • 大小: 6.5 KB
  • 大小: 17.4 KB
2
0
分享到:
评论
3 楼 lvwenwen 2014-11-16  
snowolf 写道
lvwenwen 写道
哥们,截图用的哪个工具

QQ自带的~~~

不是问截图工具,是问截图的那图是哪个工具
2 楼 snowolf 2014-11-14  
lvwenwen 写道
哥们,截图用的哪个工具

QQ自带的~~~
1 楼 lvwenwen 2014-11-14  
哥们,截图用的哪个工具

相关推荐

    Zookeeper_安装和配置

    - **配置管理**:Zookeeper 提供了一种中心化的配置管理方式,可以集中管理和分发应用的配置,使集群中的所有节点共享相同的配置信息。 - **名字服务**:Zookeeper 可以作为分布式系统中的命名服务,帮助客户端找到...

    大数据技术基础实验报告-Zookeeper的安装配置和应用实践.doc

    在实际工作中,掌握Zookeeper的安装配置和基本操作对于理解和管理分布式系统至关重要。通过实验,可以深入理解Zookeeper如何在集群环境中进行数据协调和管理,这对于大数据项目中的任务调度、服务发现和配置共享等...

    Zookeeper 安装和配置

    总结,本篇文章涵盖了 Zookeeper 的安装、配置、集群搭建,以及在 Dubbo 中使用 Zookeeper 作为服务注册中心的基本步骤。了解并掌握这些知识,对于构建和维护分布式系统具有重要意义。实际应用中,还需要注意监控、...

    ZooKeeper集群安装配置

    ZooKeeper 集群安装配置 ZooKeeper 是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护...

    第7章 ZooKeeper组件安装配置.pdf

    《ZooKeeper组件安装配置详解》 ZooKeeper,作为分布式协调服务的基石,是Apache Hadoop项目的重要组成部分。在大型分布式系统中,ZooKeeper常用于管理命名服务、配置管理、集群同步、选举等核心功能。本章将详细...

    zookeeper 单机集群配置

    总结一下,ZooKeeper单机集群配置主要包括下载与解压、环境变量配置、ZooKeeper配置文件修改、初始化数据目录、启动ZooKeeper服务以及测试服务。在Java Dubbo项目中,ZooKeeper发挥着关键的协调作用,使得服务之间的...

    zookeeper集群配置详解

    在Linux集群环境中搭建Zookeeper集群是一个涉及到多台服务器间协调工作的复杂过程,需要对Zookeeper的工作原理和配置有深入的了解。本篇详细阐述了从下载安装到集群配置的全过程。 首先,Zookeeper集群部署的前提...

    zookeeper集群zookeeper配置文件

    zookeeper集群zoo.cfg配置文件,下载后将zookeeper地址改成实际地址,可以直接使用

    zookeeper集群+配置手册

    Zookeeper集群是一个分布式协调服务,常用于管理大型分布式系统中的命名空间、配置管理、领导者选举等任务。在本文中,我们将深入探讨如何搭建一个由三个节点组成的Zookeeper集群,并了解其配置过程。 首先,...

    zookeeper分布式集群配置

    Zookeeper是Apache Hadoop项目下的一个子项目,它是一个分布式的、开放源码的分布式应用程序协调服务,是集群管理的基石,提供了诸如配置维护、命名服务、分布式同步、组服务等分布式基础服务。本教程将深入讲解在...

    zookeeper集群的配置文件示例

    zookeeper集群的配置文件示例,zoo.cfg,里面已经配置好了,一看就懂。只要把该文件放在zookeeper目录下的conf文件夹下即可

    zookeeper配置内容导入导出工具

    一款好用的zookeeper配置内容导入导出工具,适用平台是windows,但是也可以修改run.bat为shell脚本,适合linux。 带图形界面,修改config中的config.xml,添加需要管理的zookeeper地址信息,同时可以定义两个用户...

    Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取

    - ZooKeeper的基本操作,如创建节点、读取数据 - 自定义Spring Bean以扩展其功能 - Java编程,包括多线程和网络通信(ZooKeeper API的使用) - 分布式系统中的配置管理策略 通过这种方式,我们可以实现更灵活的配置...

    zookeeper配置.docx

    Zookeeper 配置和集群操作 Zookeeper 是一个基于 Java 的分布式应用程序协调服务,提供了配置管理、命名、提供分布式同步和提供组服务等功能。下面将对 Zookeeper 的配置和集群操作进行详细说明。 Zookeeper 配置 ...

    hbase和zookeeper配置

    HBase 和 ZooKeeper 配置详解 HBase 和 ZooKeeper 是两个非常重要的分布式系统组件,分别用于分布式数据库和分布式协调服务。今天,我们将详细介绍如何配置 HBase 和 ZooKeeper,以便更好地理解它们之间的交互。 ...

    zookeeper linux集群搭建流程

    ZooKeeper Linux 集群搭建流程可以分为四步:下载和解压 ZooKeeper、创建目录和 myid 文件、修改 ZooKeeper 启动配置文件、启动 ZooKeeper 节点。通过这些步骤,可以成功搭建 ZooKeeper Linux 集群,满足分布式系统...

    zookeeper安装与配置

    zookeeper安装与配置

    zookeeper增加权限登录验证

    ZooKeeper 是一个广泛使用的分布式协调服务,它提供了许多有用的功能,如配置管理、名字服务、分布式锁等。然而,在 ZooKeeper 中存在一些安全漏洞,例如未经授权的访问、数据泄露等。为了解决这些问题,本文将介绍...

    zookeeper配置文件.zip

    1. **基本配置**:包括Zookeeper的数据目录(dataDir)和日志目录(dataLogDir),用于存储事务日志和快照数据。例如: ```properties dataDir=/path/to/zookeeper/data dataLogDir=/path/to/zookeeper/logs ```...

    hadoop+HA+zookeeper+hbase配置文件

    2. `tickTime`: 设置Zookeeper服务器的基本时间单位,通常为2000毫秒。 3. `dataDir`: 指定每个Zookeeper服务器的数据存储路径。 HBase 1.0.0的配置涉及到与Hadoop HA的集成。在`hbase-site.xml`中,你需要: 1. `...

Global site tag (gtag.js) - Google Analytics