千家信息网

zookeeper环境配置

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,先下载zookeeper的linux安装包 //安装zookeeper必须要先安装jdk,现在都是1.8以上的版本//注意版本的控制,现在线上版本 zookeeper3.4.8无明显bug,生产上要控
千家信息网最后更新 2024年11月24日zookeeper环境配置

先下载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有永久节点(只要不是人为的删除就不会消失,下次打开还有),和零时节点(只要断开了,就没有了,下次打开也不会有了,因为删除了)之分

0