Linux安装Zookeeper


ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

原理

ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos做了一些优化,通过选举产生一个leader (领导者),只有leader才能提交proposer,具体算法可见Fast Paxos。因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解。
ZooKeeper的基本运转流程:

1、选举Leader。
2、同步数据。
3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
4、Leader要具有最高的执行ID,类似root权限。
5、集群中大多数的机器得到响应并接受选出的Leader。

下载zookeeper

下载zookeeper地址:https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
在linux中,进入usr/local目录

cd /usr/local
#创建一个zookeeper目录进行存储zookeeper的相关包
mkdir zookeeper
#进入zookeeper
cd zookeeeper
#下载相关的文件
wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz 
#进行解压
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz

目录如下:
在这里插入图片描述
进入apache-zookeeper-3.6.2-bin文件

cd apache-zookeeper-3.6.2-bin
#查看相关的文件目录
ll 

在这里插入图片描述
bin:启动脚本等
conf:配置文件
docs:帮助文档
lib:相关的包

配置zookeeper的配置文件

在配置zookeeper的时候,zookeeper已经有一个配置文件的样板zoo_sample.cfg

#进入conf目录
cd conf
#查询conf的文件详情
ll

在这里插入图片描述
zoo_sample.cfg中的内容:

# 每个刻度的毫秒数
tickTime=2000
# 初始的刻度数
# 同步阶段可能需要
initLimit=10
# 两次之间可以通过的刻度数
# 发送请求并获得确认
syncLimit=5
# 快照存储的目录
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# 客户端将连接的端口
clientPort=2181
# 最大的客户端连接数.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

我们在conf目录中重新创建一个zoo.cfg文件

#创建一个zoo.cfg
touch zoo.cfg

zoo.cfg的内容如下:
在这里插入图片描述
基本简单配置设置好了

启动zookeeper

启动zookeeper很简单

[root@kafka-1 bin]# ./zkServer.sh start

启动异常

Admin Server 8080端口占用

在启动zookeeper的时候有相关的报错信息,查看日志如下:
在这里插入图片描述
这里是由于zookeeper启动的时候会使用AdminServer,AdminServer内嵌了一个jetty容器,进行http请求的当时获取zookeeper的相关信息。可以使用如下配置进行修改:
admin.enableServer:是否启用adminServer服务
admin.serverPort:adminServer的端口号
admin.commandURL:相对于根URL列出和发布命令的URL。 默认为“/ commands”
我们进行修改zoo.cfg如下:
在这里插入图片描述
重新启动
在这里插入图片描述
启动成功,我们来看相关的日志
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值