zookeeper入门一

zookeeper 分布式的协调服务,apache顶级开源项目之一

A zookeeper本身为分布式的程序(只要半数zk节点存活,就能正常服务)

B 提供主从协调,服务节点动态上下线,统一配置管理,分布式共享锁,统一名称服务。。。

核心提供 读/写 程序提交的数据,并为用户程序提供数据节点监听服务

zk适合奇数台机器上!一般3台或5台...

集群脚本

集群启动关闭脚本(前提是配置了ssh免密码登录)

#!/bin/bash

NODENAME_ARR=('hadoop@eds2' 'hadoop@eds3' 'hadoop@eds4')

echo '' >> zk.log

if [ $# -eq 0 ];then

echo -e "请带参数执行脚本.如:\n    sh startAllZK.sh start \n    sh startAllZK.sh stop\n"

exit 1

fi

if [ $1 == 'start' ] ;then

  for nodename in ${NODENAME_ARR[@]}

  do echo -n "${nodename}正在启动..."

    echo ${nodename} >> zk.log

    ssh $nodename 'export BASH_ENV=/etc/profile;/opt/zookeeper/bin/zkServer.sh start' >>zk.log 2>&1

    if [ $? == 0 ];then

      echo "  ${nodename}启动成功"

    else

      echo "  ${nodename}启动"

    fi

  sleep 1

  done

elif [ $1 == 'stop' ] ;then

  for nodename in ${NODENAME_ARR[@]}

  do

    echo -n "${nodename}正在关闭..."

    echo ${nodename} >> zk.log

    ssh $nodename 'export BASH_ENV=/etc/profile;/opt/zookeeper/bin/zkServer.sh stop' >>zk.log 2>&1

    if [ $? == 0 ];then

      echo "  ${nodename}关闭成功"

    else

      echo "  ${nodename}关闭失败"

    fi

#  sleep 1

  done

fi

zk结构

1、层次化的目录结构,命名符合常规文件系统规范(见下图)

2、每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识

3、节点Znode可以包含数据和子节点(但是EPHEMERAL类型的节点不能有子节点,下一页详细讲解)

4、客户端应用可以在节点上设置监视器(后续详细讲解)


zookeeper入门一_第1张图片

节点类型

1 Znode有两种类型

短暂(ephemeral) 断开连接后,数据自己就删除了(短暂的[ɪ'fem(ə)r(ə)l; -'fiːm-])

持久(persistent) 断开连接不删除

2 Znode有四种形式的目录节点(默认persistent)(sequential连续的 [sɪ'kwenʃ(ə)l])

persistent  #

persistent_sequential

ephemeral  #临时节点,当会话失效节点会被删除,没有子节点,可以在持久节点下创建临时节点

ephemeral_sequential  #临时有序节点,常用语分布式锁

创建znode时设置顺序标识,znode名称后会附加一个值,顺序号是一个递增的序号

常用命令

http://blog.csdn.net/hylexus/article/details/53352789#25-quota

#ls /  #显示/ 根目录

# create /nodename nodevalue #创建节点

# get /nodename  #获取节点信息

#delete /nodename  #删除节点(删除空节点)

#rmr /nodename  #循环删除(有子节点也会删除)

create [-s] [-e] path data acl  # -e临时ephemeral,-s sequential

#更多命令使用help查看

zookeeper分布式锁实现基本原理

你可能感兴趣的:(zookeeper入门一)