大数据系列(3)之zookeeper集群搭建

前言:由于 hbase等集群的搭建依赖于zookeeper,所以这里把zookeeper集群的搭建和 zookeeper原理(下一篇)等 放到了前面。

1、下载并解压zookeeper

进入zookeeper的镜像网页地址:

http://www.apache.org/dyn/closer.cgi/zookeeper/

进入所选择的版本

复制下载地址

进入自己创建的 zookeeper目录,用 wget命令下载

wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz

注:从版本3.5.5开始,后面的版本要下载带有bin名称的包,这个包下载后可以直接使用,只有它里面有编译后的二进制的包。之前的tar.gz的包里面是无法直接使用的源码。(这里踩了一个坑,刚开始下的是apache-zookeeper-3.7.0.tar.gz,最后所有配置完毕后,起不来,报”Starting zookeeper ... FAILED TO START“ 的错误,通过查日志,发现启动报错:”错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain“,后来知道这个原因。)

进入解压后的文件夹,并进入conf目录(根据自己创建的目录而定)

tar -zxvf  apache-zookeeper-3.7.0-bin.tar.gz

解压后的apache-zookeeper-3.7.0-bin文件位于当前目录

注:如果想下载zookeeper其他版本可进入http://archive.apache.org/dist/并拉到最下面找到zookeeper,点进去 找到对应版本下载即可

2、修改配置文件

进入解压后的文件夹,并进入conf目录(根据自己创建的目录而定)

cd usr/softInstall/zookeeper/apache-zookeeper-3.7.0/conf

修改zoo_sample.cfg 文件名称为zoo.cfg

mv zoo_sample.cfg zoo.cfg

编辑该文件

vi zoo.cfg

进行如下 设置

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
# dataDir=/tmp/zookeeper
dataDir=/usr/softInstall/zookeeper/dataDir
dataLogDir=/usr/softInstall/zookeeper/dataDir
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# 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

server.1=192.168.3.7:2888:3888
server.2=192.168.3.8:2888:3888
server.3=192.168.3.9:2888:3888

配置解释

dataDir:内存数据库快照存放地址。

dataLogDir:事务日志存放地址。

注:如果没有指定dataLogDir,默认也是存放在dataDir路径下,一般这两个地址要分开存放到不同的设备上。

我的dataDir目录:

mkdir usr/softInstall/zookeeper/dataDir

我的dataLogDir目录:

mkdir usr/softInstall/zookeeper/dataLogDir

其它配置参数:

clientPort:配置ZK监听客户端连接的端口

tickTime:心跳基本时间单位(毫秒),zookeeper中的时间一般是他的整数倍。

initLimit:tickTime的个数,表示在leader选举结束后,followers与leader同步需要的时间,如果followers比较多或leader数据非常多,同步时间相应可能会增加,则该值也要增加。这个值也是follower和observer在开始同步leader的数据时的最大等待时间(setSoTimeout)。

syncLimit:也是tickTime的个数,它表示follower和observer与leader交互时的最大等待时间,只不过是在与leader同步完毕之后,进入正常请求转发或ping等消息交互时的超时时间。

server.serverid=host:tickpot:electionport

其中serverid:每个服务器的指定ID(1-255,每台机器不能重复)如下面配置的myid中的id;其中tickpot:用于心跳通信的端口;其中electionport:用于选举的端口

3、同步配置文件

通过以下命令将 本机zookeeper文件夹下的内容 全部copy到另外几台电脑上,减少安装和 配置时间。#将本主机的/usr/softInstall/zookeeper目录copy到远程linux主机上/usr/softInstall的文件夹下面

scp -r /usr/softInstall/zookeeper root@192.168.3.8:/usr/softInstall
scp -r /usr/softInstall/zookeeper root@192.168.3.9:/usr/softInstall

在每个服务器的dataDir目录下建立myid文件,并在文件中写入对应的serverid(与前面zoo.cfg文件中配置的serverid对应)如我的 第三台服务器:

4、配置环境变量

在root目录下:

vi .bashrc
#Zookeeper
export ZOOKEEPER_HOME=/usr/softInstall/zookeeper/apache-zookeeper-3.7.0
export PATH=$PATH:$ZOOKEEPER_HOME/bin

使它生效:

source .bashrc

5、启动zookeeper集群

启动:zkServer.sh start

其它命令:

重新启动:zkServer.sh restart

停止:zkServer.sh stop

查看状态:zkServer.sh status(查看状态要等所有的机器都被 启动完成后查看,若还未全部启动完成,查看状态会显示下图所示信息,此时不要惊慌,等所有机器 启动完成后再次 查看,若还是出现 下图信息,查看防火墙,或telnet命令查看2888:3888端口的状态)

依次启动其它两台机器,当三台机器全部启动完毕,查看每台机器的状态,出现下面状态,则表示启动成功,且很明显第二台机器被选为leader。

至此,zookeeper集群的搭建全部完成,欢迎大家关注后续文章。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值