温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

zookeeper环境配置

发布时间:2020-08-05 14:54:23 来源:网络 阅读:460 作者:马吉辉 栏目:大数据

先下载zookeeper的linux安装包 //安装zookeeper必须要先安装jdk,现在都是1.8以上的版本
//注意版本的控制,现在线上版本 zookeeper3.4.8无明显bug,生产上要控制版本

上传到linux中。
然后解压到指定的文件目录下 tar -zxvf zookeeper... -C /usr/local/apps/
    cd app/
    cd zookeeper.../看一下他的目录结构
    里面的jar包就一个zookeeper-3.4.5.jar
    bin目录下有运行的命令
    conf里是配置文件,首先到配置文件下去配置
    cd conf/
    要修改的配置文件为zoo_sample.cfg(我们需要改名字)
    mv zoo_sample.cfg zoo.cfg
    ls -l
    zoo.cfg就是我们要修改的配置文件
    vi zoo.cfg中修改为dataDir=/usr/local/apps/zookeeper-3.4.6/data工作目录
    在最后加一下
        他必须知道我们的集群里面有哪些服务器
            server.1=hadoop-server-00:2888:3888
            server.2=hadoop-server-01:2888:3888
            server.3=hadoop-server-02:2888:3888
        (其中2181代表:客户端与服务器连接所用的端口)
        (其中2888代表:leader与follower之间的通信用的端口)
        (其中3888代表:follower之间选举投票用的端口)

这里注意:
在后面的生产中,这里要写成这样 server.1=ip:2888:3888
server.2=ip:2888:3888
server.3=ip:2888:3888
因为:写主机名,zk能起来,kafka也能起来,但是kafka他去解析ZK的时候,他不通过etc/hosts 以后会出问题
这里面,我们就下IP,这里注意下

        要在这个    /root/app/zookeeper-3.4.5/data下创建data的工作目录
            mkdir data
            cd data/
            要在data这里面创建一个文件,里面写一个这台服务器在zookeeper里面的编号
            echo 1 > myid(必须叫myid不能用别的名字)

这是在一台主机上面配置完成,下面我们需要把配置文件分发到每个机器上去

切换到安装目录/usr/local/apps/  把这个配好的zookeeper拷贝到目标机器上去
                    scp -r zookeeper-3.4.6/ hadoop-server-01:/usr/local/apps/
                    scp -r zookeeper-3.4.6/ hadoop-server-02:/usr/local/apps/
                分别拷贝到01 02机器上去
    因为在主机00这台机器上我们设置的myid为1 所以我们在01 02这两台机器上要分别设置myid为2 3 
        在hadoop-server-01上
                切换到/usr/local/apps/zookeeper-3.4.6/data
                     cd zookeeper-3.4.6/data/
                    ll
                    cat myid
                    echo 2 >myid
        在hadoop-server-02上同上
        到目前为止zookeeper就配置完成,接下来就我如何启动他

2019/1/27 星期日
注意这里,我们还需要修改zookeeper的启动内存大小 //此步骤详情,见深度学习kafka研究笔记

启动zookeeper集群
启动zookeeper的命令在bin目录下
cd bin/
ll
【zkServer.sh(是linux中的启动命令)
zkserver.cmd(是windows中的启动命令)】
./zkServer.sh start
jps看一下会看到QuorumpeerMain
但在其他的机器中看不到程序进程的启动(正常),因为这个启动脚本不负责把其他机器上的服务进程启动起来 每台机器都需要手动启动,也可以写一个启动的脚本(这里我们手动启动)
每台机器上都是通过选举来推荐出leader server所以不知道那台机器上是leader server那台机器上是follower server 因此我们可以通过 ./zkServer.sh status来看每台机器上到底是什么server

    当三个节点的时候,我杀掉1台,他还可以正常工作,杀掉2台就不能正常工作了
    zookeeper有一个规律:集群中只要有半数以上节点活着,zookeeper就会正常工作,必须要半数以上,
    那为什么一定要超过半数,归根于投票,因为集群中的投票算法是随机的,也就是说一点要有一个机器被选上当leader server所以当小于半数的时候就不能选举出leader server
        集群中配置服务器节点数量最好是奇数

zookeeper的功能://只有2个功能,其他的功能都是基于zk实现的
也就是第三方,要你查数据的时候,可以返还给客户端,所以具体他是不知道干什么的
(最重要的功能也就是替客户端保管数据,为客户提供数据的监听服务)

zookeeper中的数据节点
每一个节点称为znode 通过路径来访问
每一个znode维护着,数据,stat数据结构(ACL 时间戳及版本号)
每个节点存储的数据量很小,KB级别(状态数据,往往是一下标志,不能存储大数据)
zonde有永久节点(只要不是人为的删除就不会消失,下次打开还有),和零时节点(只要断开了,就没有了,下次打开也不会有了,因为删除了)之分

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI