zookeeper之Linux环境下的安装

1 安装 ZooKeeper

zookeeper一般建议为奇数个(2n+1),方便快速投票和选举,半数以上的才可以选出主机
搭建伪集群, 在同一个Linux中安装三个 ZooKeeper实例。 使用不同的端口实现同时启动。 端口分配如下:

主机 服务端口 投票端口 选举端口
192.168.159.130 2181 2881 3881
192.168.159.130 2182 2882 3882
192.168.159.130 2182 2882 3882

1.1 解压缩

tar -zxvf zookeeper

1.2 复制配置文件

zookeeper解压后的conf目录中,把zoo_sample.cfg给复制一份并且名字为zoo.cfg,这是因为zoo_sample.cfg只是配置模板,需要我们以这个模板为基础创建zoo.cfg,并且zookeeper真正读取的是zoo.cfg文件
cp zoo_sample.cfg zoo.cfg

1.3 创建 data 数据目录

因为在 zookeeper 中需要临时的数据目录,因为在解压后的文件夹中创建文件夹 data目录
mkdir data
另外,需要在每个Zookeeper 应用内的 data目录中增加文件myid,内部定义每个服务的编号. 编号要求为数字,是正整数可以使用回声命名快速定义 myid 文件,这个文件的名字必须是myid,其他的话回启动失败
echo 1 > myid

1.4 编写Zookeeper配置文件

vi /usr/local/solrcloude/zookeeper1/conf/zoo.cfg

  • 修改data数据目录的路径
  • clientPort=2181 客户端访问端口,因此三个 zookeeper 实例不能端口相同.
    还需要如下配置:server.服务的编号=IP:投票端口:选举端口
    服务器编号:表示这是第几号服务器
    投票端口:是这个服务器与集群中的Leader服务器交换信息的端口,用于决定正在运行的主机是否宕机
    选举端口: 如果集群中的Leader服务器挂了,用于决定哪一个 Zookeeper服务作为主机
    三个Zookeeper 应用配置一致.
server.1=192.168.120.132:2881:3881
server.2=192.168.120.132:2882:3882
server.3=192.168.120.132:2883:3883

1.5 复制两份同样的Zookeeper

cp zookeeper1 zookeeper2 -r
cp zookeeper1 zookeeper3 -r

复制后,要修改zoo.cfg

1.6 启动 Zookeeper 测试

要至少启动两个 Zookeeper 启动. 启动单一 Zookeeper,无法正常提供服务.

# 启动
zookeeper1/bin/zkServer.sh start
# 查看状态
zookeeper1/bin/zkServer.sh status

1.7 操作zkClinet

zkCli.sh 进入zookeeper客户端
根据提示命令进行操作:

  • 查找(只能是绝对路径): ls / ls /zookeeper
  • 创建并赋值: create /bhz hadoop
  • 获取: get /bhz
  • 设值: set /bhz baihezhuo

可以看到zookeeper集群的数据一致性,创建节点有俩种类型:短暂(ephemeral)和持久(persistent

1.8 zoo.cfg详解

tickTime: 基本事件单元,以毫秒为单位。这个时间是作为 Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔 tickTime时间就会发送一个心跳。
dataDir: 存储内存中数据库快照的位置,顾名思义就是 Zookeeper保存数据的目录,默认情况下, Zookeeper将写数据的日志文件也保存在这个目录里。
clientPort: 这个端口就是客户端连接 Zookeeper服务器的端口, Zookeeper会监听这个端口,接受客户端的访问请求。
initLimit: 这个配置项是用来配置 Zookeeper接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,当已经超过10个心跳的时间(也就是tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是10*2000=20 秒。
syncLimit: 这个配置项标识LeaderFollower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10

发布了334 篇原创文章 · 获赞 186 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/u012060033/article/details/104855291