zookeeper介绍

Zookeeper基本介绍

1、ZooKeeper

    1.1 它可以用来保证数据在zk集群之间数据的事务性一致

    1.2 默认数据大小应该限制在2M以下,这样才能保证数据一致性

2、如何搭建ZooKeeper服务器集群Zookeeper基本介绍

    2.1 zk服务器集群规模不小于3个节点,要求各服务器之间系统时间要保持一致

    2.2 拷贝zookeeper-3.4.5.tar.gz文件到/usr/local/下面,解压

       [root@hadoop0 local]# tar -zxvf zookeeper-3.4.5.tar.gz   //解压缩

       [root@hadoop0 local]# mv zookeeper-3.4.5 zk              //重命名

    2.3 设置到环境变量

        [root@hadoop0 local]# vi /etc/profile   //修改加入zk的bin目录到环境编辑

        [root@hadoop0 local]# source /etc/profile   //让修改立即生效

    2.4 修改配置文件,搭建集群

        [root@hadoop0 zk]# cd conf          //进入zk的conf目录

        [root@hadoop0 conf]# ls

            configuration.xsl  log4j.properties  zoo_sample.cfg     //三个文件

        [root@hadoop0 conf]# mv zoo_sample.cfg zoo.cfg              //修改zoo例子文件名称

        [root@hadoop0 conf]# ls

            configuration.xsl  log4j.properties  zoo.cfg

        

        [root@hadoop0 conf]# vi zoo.cfg    

            .dataDir=/usr/local/zk/data          //修改数据存放目录

            .增加三个zk服务器,给它三个标志,对应三个不同的主机名<2888,3888服务器端口>

                server.0=hadoop0:2888:3888      //代表第一台服务器

                server.1=hadoop1:2888:3888

                server.2=hadoop2:2888:3888

    2.5 标识hadoop0这台主机上的zookeeper服务器

        [root@hadoop0 zk]# mkdir data   在zk目录下创建一个zk存放数据的文件夹,data,上面配置过

        [root@hadoop0 zk]# cd data/     到这个zk/data文件夹下

        [root@hadoop0 data]# vi myid    编辑一个myid的文件,值为0,并且保存到本目录下

        [root@hadoop0 data]# ls

            myid   --->有表示符0,代表第server.0台server

        [root@hadoop0 data]# more myid

            0

    2.6 复制hadoop0这台主机上配好的Zookeeper信息到另外两个节点

        [root@hadoop0 local]# scp -r zk/ hadoop1:/usr/local/     复制zk到hadoop1节点上

        [root@hadoop0 local]# scp -r zk/ hadoop2:/usr/local/     复制zk到hadoop2节点上

        [root@hadoop0 local]# scp -r /etc/profile hadoop1:/etc/  复制环境变量到hadoop1上

        [root@hadoop0 local]# scp -r /etc/profile hadoop1:/etc/  复制环境变量到hadoop2上

    2.7 让hadoop个几点中的环境变量生效

        [root@hadoop0 local]# ssh hadoop1   //ssh 免密码登陆

        Last login: Wed Jun 11 19:46:56 2014 from hadoop0   

        [root@hadoop1 ~]# source /etc/profile       //让环境变量立即生效

        [root@hadoop1 ~]# vi /usr/local/zk/data/myid    //修改里面的值为1,表示zk的server.1

        *******************************************

        [root@hadoop1 ~]# exit

            logout

            Connection to hadoop1 closed.

        *******************************************

        [root@hadoop0 local]# ssh hadoop2           

            Last login: Wed Jun 11 19:47:01 2014 from hadoop0

        [root@hadoop2 ~]# source /etc/profile

        [root@hadoop2 ~]# vi /usr/local/zk/data/myid     //修改里面的值为2,表示zk的server.2

    2.8 zk的配置就完成了

    2.9 启动,在三个节点上分别执行命令(里面会经历一个选举过程,自动选出一个领导者[leader],

        其他的为跟随者[follower])

        [root@hadoop0 local]# cd zk/bin

        [root@hadoop0 bin]# ls

        README.txt    zkCli.cmd  zkEnv.cmd  zkServer.cmd

        zkCleanup.sh  zkCli.sh   zkEnv.sh   zkServer.sh

        [root@hadoop0 bin]# zkServer.shstart

        -bash: zkServer.shstart: command not found

        [root@hadoop0 bin]# zkServer.sh start           //启动Zk

        JMX enabled by default

        Using config: /usr/local/zk/bin/../conf/zoo.cfg

        Starting zookeeper ... STARTED

        *****************************************

        启动成功后bin里面会多出一个zookeeper.out文件

        [root@hadoop0 bin]# ls

        README.txt    zkCli.cmd  zkEnv.cmd  zkServer.cmd  zookeeper.out

        zkCleanup.sh  zkCli.sh   zkEnv.sh   zkServer.sh

        [root@hadoop0 bin]# more zookeeper.out          //这是一个zk的日志信息

        2014-06-12 01:28:40,541 [myid:0] - INFO  [QuorumPeer[myid=0]/0:0:0:0:0:0:0:0:218

        1:FastLeaderElection@774] - Notification time out: 400

        2014-06-12 01:28:40,942 [myid:0] - WARN  [QuorumPeer[myid=0]/0:0:0:0:0:0:0:0:218

        1:QuorumCnxManager@368] - Cannot open channel to 2 at election address hadoop2/1

        92.168.177.4:3888

        .....很多的信息,这里报错信息为何hadoop1,hadoop2通信失败,两外两个还没启动zk

 

        **********************************

        [root@hadoop0 bin]# ssh hadoop1         //ssh免密码登陆

        Last login: Thu Jun 12 01:19:15 2014 from hadoop0

        [root@hadoop1 ~]# cd /usr/local/zk/bin

        [root@hadoop1 bin]# zkServer.sh start   //在hadoop1启动zk

        JMX enabled by default

        Using config: /usr/local/zk/bin/../conf/zoo.cfg

        Starting zookeeper ... STARTED

 

        *********************************

        [root@hadoop1 bin]# more zookeeper.out  //也生成了zookeeper.out文件

        2014-06-12 01:40:31,217 [myid:] - INFO  [main:QuorumPeerConfig@101] - Reading co

        nfiguration from: /usr/local/zk/bin/../conf/zoo.cfg

        ........很多信息,也报错,连接hadoop2的zk服务器失败,hadoop2主机上的zk还没有启动

 

        **********************************

        [root@hadoop1 bin]# exit

        logout

        Connection to hadoop1 closed.

        **********************************

        [root@hadoop0 bin]# ssh hadoop2     //免密码登陆hadoop2

        Last login: Thu Jun 12 01:22:41 2014 from hadoop0

        [root@hadoop2 ~]# zkServer.sh start //启动zk

        JMX enabled by default

        Using config: /usr/local/zk/bin/../conf/zoo.cfg

        Starting zookeeper ... STARTED

        ********************************

        查看zk启动状态

        >>hadoop2 zk状态

        [root@hadoop2 ~]# zkServer.sh status    //查看zk服务器启动状态

        JMX enabled by default                  //JMX默认缺省值为启动状态

        Using config: /usr/local/zk/bin/../conf/zoo.cfg     //使用的配置文件

        Mode: follower                                      //模式:跟随者 (hadoop2上的zk)

        >>hadoop0 zk状态   

        [root@hadoop0 bin]# zkServer.sh status  //查看zk服务器启动状态

        JMX enabled by default                  //JMX默认缺省值为启动状态

        Using config: /usr/local/zk/bin/../conf/zoo.cfg

        Mode: follower                                      //模式:跟随者 (hadoop0上的zk)

        >>hadoop1 zk状态

        [root@hadoop1 ~]# zkServer.sh status        //查看zk服务器启动状态

        JMX enabled by default

        Using config: /usr/local/zk/bin/../conf/zoo.cfg

        Mode: leader                                        //模式:领导者   (hadoop1上的zk)

 

3、zk可以保持各个集群之间的事物一致性

4、zk的shell操作

    4.1 zkCli.sh 进入zk命令行模式

        Welcome to ZooKeeper!   欢迎进入zookeeper世界,这里是想在linux可以创建目录

        通过命令做各种对文件的操作

    4.2 zk中的目录叫做节点

    4.3 有些什么命令呢?

        [zk: localhost:2181(CONNECTED) 0] xxx

        ZooKeeper -server host:port cmd args        //ZooKeeper服务器主机:端口命令参数

        connect host:port

        get path [watch]                            //get一个值

        ls path [watch]                             //查看节点(即目录)列表

        set path data [version]                     //可以set一个值  

        rmr path                                    

        delquota [-n|-b] path

        quit                                        //退出

        printwatches on|off

        create [-s] [-e] path data acl              //创建一个节点(路径-->后面可以带数据)

        stat path [watch]

        close

        ls2 path [watch]

        history

        listquota path

        setAcl path acl

        getAcl path

        sync path

        redo cmdno

        addauth scheme auth

        delete path [version]                    //删除一个路径

        setquota -n|-b val path

        

    4.4 shell命令操作

        [zk: localhost:2181(CONNECTED) 1] ls /          //查看节点列表

        [zookeeper]

        [zk: localhost:2181(CONNECTED) 2] ls /zookeeper

        [quota]

        [zk: localhost:2181(CONNECTED) 3] ls /zookeeper/quota

        []

        *****************************************************

        [zk: localhost:2181(CONNECTED) 1] create /chaoren hadoop //创建一个chaoren节点

                                                                   设置一个值hadoop数据

        [zk: localhost:2181(CONNECTED) 2] get /chaoren           //get命令查看节点数据 

        hadoop

        cZxid = 0x100000008

        ctime = Thu Jun 12 02:29:35 PDT 2014

        mZxid = 0x100000008

        mtime = Thu Jun 12 02:29:35 PDT 2014

        pZxid = 0x100000008

        cversion = 0

        dataVersion = 0

        aclVersion = 0

        ephemeralOwner = 0x0

        dataLength = 6                                              //数据的长度

        numChildren = 0

        [zk: localhost:2181(CONNECTED) 3] [root@hadoop0 ~]#

        *******************************************************

        .zk数据的一致性(hadoop1下面查看的结果)

        

        [zk: localhost:2181(CONNECTED) 1] ls /

        [chaoren, zookeeper]

        [zk: localhost:2181(CONNECTED) 2] get /chaoren          //查看节点中的数据

        hadoop

        cZxid = 0x100000008

        ctime = Thu Jun 12 02:29:35 PDT 2014

        mZxid = 0x100000008

        mtime = Thu Jun 12 02:29:35 PDT 2014

        pZxid = 0x100000008

        cversion = 0

        dataVersion = 0                                          //数据版本

        aclVersion = 0                                          //访问控制列表版本

        ephemeralOwner = 0x0

        dataLength = 6

        numChildren = 0

        [zk: localhost:2181(CONNECTED) 3] [root@hadoop1 ~]#

 

        .zk数据的一致性(hadoop2下面查看的结果)

        *******************************************************

        [zk: localhost:2181(CONNECTED) 0] get /chaoren

        hadoop                                                         //数据为hadoop

        cZxid = 0x100000008

        ctime = Thu Jun 12 02:29:35 PDT 2014

        mZxid = 0x100000008

        mtime = Thu Jun 12 02:29:35 PDT 2014

        pZxid = 0x100000008

        cversion = 0

        dataVersion = 0                                               //数据版本0

        aclVersion = 0                                                //访问控制列表版本

        ephemeralOwner = 0x0    

        dataLength = 6                                               //数据长度

        numChildren = 0

        [zk: localhost:2181(CONNECTED) 1] [root@hadoop2 ~]#

        ************************保持个节点间数据的一致性***************************** 

        [zk: localhost:2181(CONNECTED) 0] set /chaoren allofus      //设置数据到chaoren节点

        cZxid = 0x100000008

        ctime = Thu Jun 12 02:29:35 PDT 2014

        mZxid = 0x100000013

        mtime = Thu Jun 12 02:42:23 PDT 2014

        pZxid = 0x100000008

        cversion = 0

        dataVersion = 1                                            //数据版本1

        aclVersion = 0

        ephemeralOwner = 0x0

        dataLength = 7

        numChildren = 0

        [zk: localhost:2181(CONNECTED) 1] get /chaoren

        allofus                                                     //数据改变为allofus

        cZxid = 0x100000008

        ctime = Thu Jun 12 02:29:35 PDT 2014

        mZxid = 0x100000013

        mtime = Thu Jun 12 02:42:23 PDT 2014

        pZxid = 0x100000008

        cversion = 0

        dataVersion = 1                                             //数据版本1

        aclVersion = 0

        ephemeralOwner = 0x0

        dataLength = 7                                              //数据长度7

        numChildren = 0

   

   4.5 zk的Znode有两种类型

        znode类型在创建时确定,并且之后不能再修改

        短暂类型(ephemeral)客户端回话结束后,zk会将znode删除

        持久类型(persistent)znode不依赖于客户端对话,只有客户端明确要删除该znode才会被删除

        Znode有四种形式的目录节点:

            PERSISTENT、PERSISTENT_SEQUENTIAL、EPHEMERAL、EPHEMERAL_SEQUENTIAL

5、java和shell操作zookeeper

        实际开发中用的不是很多,仅仅是在HBase中需要用到zookeeper的一些东西,除非你要做

    分布式开发,仅仅是hadoop的话,用的不是很多,包括zk的Znode类型也是如此.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值