虚拟机 您所在的位置:网站首页 虚拟机zookeeper 虚拟机

虚拟机

2024-02-21 21:30| 来源: 网络整理| 查看: 265

前言

zookeeper的搭建以及集群搭建是非常简单的、我们在工作中常用的就是单点模式跟集群模式。

本篇的内容为:

Zookeeper运行模式Zookeeper搭建(单点、集群)

官网zookeeper搭建参考:https://zookeeper.apache.org/...

正文一、Zookeeper 运行模式

Zookeeper单点模式和集群模式。

单点模式(standalone mode)- Zookeeper 只运行在单个服务器上,常用于开发测试阶段,这种模式比较简单,但是不能保证Zookeeper服务的高可用性和恢复性。集群模式(replicated mode)- 这种模式叫做“复制模式”;这个模式下,Zookeeper运行于一个集群上,适合生产环境。同一个集群下的server节点被称为_quorum_,翻译过来就是“一个正式会议的法定人数”;在集群模式下,最少需要三个server节点。并且官方推荐你使用奇数数量的server节点来组成集群。至于为什么,和Zookeeper的读写策略和一致性协议有关。二、Zookeeper搭建单点模式去官网下载对应源码压缩包,然后上传到服务器解压,tar -zxvf zookeeper-***.tar.gz

进入到源码目录下的conf目录,根据zoo_sample.cfg,创建一个配置文件zoo.cfg,启动时默认就是按照zoo.cfg这个配置文件的信息来启动。添加如下关键配置:a.zk主要会在内存里面维护znode的数据结构,让你高性能地去读写。但是实际上来说,同时也会把数据往磁盘里面存。所以必须配置磁盘数据/日志所存放的目录: dataDir/dataLogDir。b.面向客户端开放的端口号:clientPort=2181

# Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔, # 也就是每个 tickTime 时间就会发送一个心跳。 tickTime=2000 # Zookeeper 保存数据的目录 dataDir=/opt/zookeeper/data # Zookeeper 保存日志文件的目录 dataLogDir=/opt/zookeeper/log # 客户端连接Zookeeper 服务器的端口 # Zookeeper 会监听这个端口,接受客户端的访问请求 clientPort=2181

修改环境变量

vi ~/.bashrc export ZOOKEEPER_HOME=/usr/local/zookeeper  export PATH=$PATH:$ZOOKEEPER_HOME/bin source ~/.bashrczk服务启动操作:

我们进入zkServer.sh时候,可以看到zk的一些启动脚本。

a.进入到源码目录下的bin目录,执行zkServer.sh脚本文件即可

# 启动 zkServer.sh start # 关闭 zkServer.sh stop

b.查看当前zookeeper 状态

[root@localhost bin]# sh zkServer.sh status ZooKeeper JMX enabled by default Using config: /opt/zookeeper- 3.4.8/bin/../conf/zoo.cfg Mode: standalone

Mode:standalone可以看到现在的节点启动类型:单点模式。

c.查看zk进程

jps -l

d.使用zkCli.sh连接zk的本地server 比如:ls /从上图我们可以看到:基于zk的客户端查看一些信息,因为zk的内存数据 结构是基于znode的核心类似文件系统的一套数据结构,里面有很多节点,节点之间是有很多层级关系的,所以通过zkCli里面的命令都是类似玉linux里面的文件系统命令:比如 ls / 通过这个命令可以查看当前zk都有哪些节点。

集群模式

集群模式的搭建和单点模式的差别不大,如果按照官方的最低要求,就是三台服务器,在这三台服务器上面分别执行一下上述单点模式的步骤,同一集群下的每台服务器的配置文件类似。

基于上述单点模式搭建,集群模式的搭建,我们需要做以下更改:

每台机器上 conf/zoo.cfg 配置文件的参数设置,需要添加集群的信息.

tickTime=2000 dataDir=/opt/zookeeper/data dataLogDir=/opt/zookeeper/log clientPort=2181 # 集群相关配置 # 允许 follower 连接并同步到 leader 的初始化连接时间 # 比如这里就是允许 5个 tick 的时间 initLimit=5 # leader 与 follower 之间发送消息,请求和应答时间长度。 # 如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被丢弃。 # 比如这里就是允许 2个 tick 的时间 syncLimit=2 # 集群信息 server.1=centos1:2888:3888 server.2=centos2:2888:3888 server.3=centos3:2888:3888

server.id=host:port1:port2标识了不同Zookeeper服务器的信息,其中 id 是一个数字,表示这个是服务器的编号;host是这个服务器的 ip 地址;至于port1和port2参照官网的描述较为准确."2888"和"3888",Zookeeper 节点使用前面那个端口(port1)来与其他节点建立连接。这个连接是必须建立的,因为不同节点之间需要通信。打比方说,follower节点需要“赞成”leader节点的更新命令。更确切一点说,这个节点是用于follower节点和leader节点之间的通信。当一个leader节点出现了,follower节点会在port1上与leader节点建立一个TCP连接。因为默认的leader选举也是用TCP,我们现在就需要另一个端口来用于leader选举,这就是port2的作用。

概括来说,port1通信端口,port2选举端口。

在每个Zookeeper服务器对应的dataDir目录下需要创建一个名为myid的文件,这个文件中仅含有一行的内容,指定的是自身的 id 值,就是server.id=host:port1:port2中的id值。这个 id 值必须是集群中唯一的。确认每台服务器上的zoo.cfg和myid文件修改创建之后,在三个节点上分别执行命令zkServer.sh start,启动zookeeper server。

查看集群状态

1、jps(查看进程:会出现:QuorumPeerMain )  2、zkServer.sh status(查看集群状态,主从信息)三、Zookeeper搭建详细操作1.zookeper包上传

文件上传:上传: scp localpath username@ip:remotepath文件下载:scp -r remote_username@remote_ip:remote_folder local_folder

scp /Users/xiexinming/software/package/zookeeper-3.4.9.tar.gz [email protected]:/usr/local/2.zookeper解压修改名称

1、解压

tar -zxvf zookeeper-3.4.9.tar.gz

2、删除jar包,然后重命名

3.配置环境变量vi ~/.bashrc export ZOOKEEPER_HOME=/usr/local/zookeeper  export PATH=$PATH:$ZOOKEEPER_HOME/bin source ~/.bashrc

4.修改配置文件

拷贝一份已经存在的样本文件,然后进行编辑 进入zookeeper的配置文件中: cd ./zookeeper/conf

我们在/opt下新建目录:zookeeper 然后我们修改zookeeper的配置文件。

mkdir /opt/zookeeper/data mkdir /opt/zookeeper/log

修改里面的基本配置文件:

dataDir=/opt/zookeeper/data dataLogDir=/opt/zookeeper/log server.1=centos01:2888:3888 server.2=centos02:2888:3888 

设置zookeeper的id 进入zookeeper的data目录中去,设置他的id

cd /opt/zookeeper/data echo 1 > myid

上面myid里面内容为1,代表的是当前zookeeper机器编号。

5.其他机器zookeeper配置scp -r /usr/local/zookeeper centos02:/usr/local ,修改环境变量,在centos02将myid的内容改为2 (echo 2 > myid) scp -r /usr/local/zookeeper centos03:/usr/local,修改环境变量,在centos03将myid的内容改为3 (echo 3 > myid)

在另一台机器查看:

修改环境变量:

vi ~/.bashrc export ZOOKEEPER_HOME=/usr/local/zookeeper  export PATH=$PATH:$ZOOKEEPER_HOME/bin source ~/.bashrc

设置zookeeper的id 进入zookeeper的data目录中去,设置他的id

cd /opt/zookeeper/data echo 2 > myid6.zookeeper启动

zookeeper是最基本基本的系统,所有可以直接跑

二台机器上执行:

1、启动zookeeper:

zkServer.sh start

2、查看集群状态

1、jps(查看进程:会出现:QuorumPeerMain )  2、zkServer.sh status(查看集群状态,主从信息)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有