zoukankan      html  css  js  c++  java
  • zookeeper介绍(5)快速入门教程

    1. Zookeeper

    前言

    由于之前总结的zk相对项目实战化,导致有人不好理解,特此准备zk的快速入门教程,仅供大家学习参考

    1.1 ZK简介

    1. ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    2. ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

    3. ZooKeeper包含一个简单的原语集,提供Java和C的接口。

    4. ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_homesrc ecipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本

    下载地址:https://webscripts.softpedia.com/script/Development-Scripts-js/Complete-applications/Apache-Hadoop-ZooKeeper-59851.html

    1.2 ZK数据模型

    1.3 ZK节点类型

    1.4 ZK的安装

    linux安装

    # 准备工作
    - jdk1.8  的安装   java -version  验证
    
    # 下载zk  (我选择的3.4.14)  上传服务器   sftp  或者  rz命令即可
    - curl http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/
    
    # 解压 并修改文件名 
    - tar -zxvf zookeeper-3.4.14.tar.gz   &&  mv zookeeper-3.4.14 zk
    
    # 补充:解压后目录结构如下
    

    # 修改zoo.cfg配置文件
    - cd conf   && cp   zoo_sample.cfg  zoo.cfg
    # 创建文件夹
    - mkdir /tmp/zookeeper  
    ## zoo.cfg文件内容如下:
     - tickTime=2000   心跳时间间隔
     - initLimit=10		超时时间  10*2 10代表重连次数
     - syncLimit=5      集群运行时同步数据时间  5*2
      # the directory where the snapshot is stored.
      # do not use /tmp for storage, /tmp here is just 
      # example sakes.  不会自动创建
     - dataDir=/tmp/zookeeper
      # the port at which the clients will connect
     - clientPort=2181
     
    # 启动 zk
    	切换到bin文件夹下   cd ../bin
      	/zkServer.sh  start  zoo.cfg文件绝对路径(默认不加去config加载zoo.cfg)
    

    # 验证  
    	1. jps  (java进程查询) zk是java编写,可以使用jps进行查询  QuorumPeerMain代表zk启动成功
    	2. zkcli查询
    		./zkCli.sh -server ip:port   -- -server ip:port 不写默认链接本机zk
    		./zkCli.sh help
    

    docker安装

    # 拉取zk镜像
    - docker pull zookeeper:3.4.14
    
    # 启动镜像
    - docker run -d --name zk1  -p 2182:2181 zookeeper:3.4.14(也可以使用镜像id)
    
    # 验证容器
    - docker ps  查询正在运行的容器 
    
    # 客户端连接验证
    -  ./zkCli.sh -server localhost:2182   使用任意zk客户端命令连接到2182端口进行验证即可
    

    1.5 客户端命令

    # help  帮助指令  查询相关命令
    
    # ls path    查询指定节点下的子节点
    
    # create path  data   创建节点 并绑定数据  默认是持久化节点
    	create /znode1 huhy     创建持久化节点 绑定数据huhy  (默认是持久化节点)
    	create -s /znode2 huhy  创建持久化顺序节点  返回的节点名称/znode20000000001
    	create -e /znode3 huhy  创建临时节点(不允许有子节点)
    	create -e -s /znode4 huhy  创建临时性顺序节点(不允许有子节点) 返回的节点名称/znode40000000003
    	
    # stat  path    查询节点状态
    
    # set path  newdata  修改节点数据
    
    # ls2 path   递归查询path节点
    
    # history  查询历史操作记录
    
    # get path  获取节点绑定数据
    
    # delete path   删除节点 不能含有子节点
    # rmr  path   递归删除
    
    # quit  退出回话   临时节点自动清除  会话失效或者超时临时节点自动清除
    

    1.6 Watch监听机制

    一个Watch事件是一个一次性的触发器,当被设置了Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了Watch的客户端,以便通知它们。

    # ls path true      监控节点目录
    # get path true     监控节点数据
    
    	ps: 可以同时启动两个客户端进行监听模拟   可以验证都是一次性的监听事件,一旦监听成功想要再次监听,就需要重新执行相关监听指令
    

    java代码中的监听是永久监听的

    1.7 zk集群

    参考:https://www.cnblogs.com/huhongy/p/10935233.html

    本文来自博客园,作者:huhy,转载请注明原文链接:https://www.cnblogs.com/huhongy/p/15019591.html

  • 相关阅读:
    log4net 开启内部调试
    负载均衡的基本算法
    MapReduce算法形式六:只有Map独自作战
    MapReduce算法形式五:TOP—N
    MapReduce算法形式四:mapjoin
    MapReduce算法形式三:cleanup
    MapReduce算法形式二:去重(HashSet)
    MapReduce算法形式二:去重(shuffle)
    MapReduce算法形式一:WordCount
    理解yarn平台,理解万岁,肤浅理解也万岁~
  • 原文地址:https://www.cnblogs.com/huhongy/p/15019591.html
Copyright © 2011-2022 走看看