【2】Zookeeper安装
一、环境准备
- Linux操作系统
- Java运行环境(1.6或以上)
- 服务器列表:

配置主机名映射。
vi /etc/hosts
##添加如下内容
168.5.7.75 server1
168.5.7.76 server2
168.5.7.77 server3
二、zookeeper安装
1、介质准备
分别登录server1、server2、server3执行,操作、配置相同:
##创建安装目录/usr/local/services/zookeeper
mkdir -p /usr/local/services/zookeeper
cd /usr/local/services/zookeeper
##下载安装包zookeeper-3.4.13.tar.gz
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
##解压缩zookeeper-3.4.13.tar.gz
tar -zxvf zookeeper-3.4.13.tar.gz
2、修改配置文件zoo_sample.cfg
分别登录server1、server2、server3执行,操作、配置相同:
cd /usr/local/services/zookeeper/zookeeper-3.4.13/conf
##先备份,再修改
cp zoo_sample.cfg zoo.cfg
配置文件参数修改如下,可自行根据需求配置:
# /usr/local/services/zookeeper/zookeeper-3.4.13/conf/zoo.cfg
# 发送心跳时间,单位:毫秒
tickTime=2000
# 配置Zookeeper集群中服务端(Leader)接受客户端(Follower)初始化连接的最大心跳时间间隔数
# 当超过10个(initLimit个)心跳时间2000(tickTime毫秒)后Zookeeper服务器仍未收到客户端返回的信息,则认为客户端(Follower)连接失败
initLimit=10
# 配置Leader和Follower之间发送消息时,请求和应答时间的长度最大不能超多的多少个(syncLimit个)心跳时间(tickTime毫秒)
syncLimit=5
# Zookeeper保存数据的目录
dataDir=/tmp/zkdata
# Zookeeper保存是指数据的目录
dataLogDir=/tmp/zkdataLog
# 客户端访问 zookeeper 的端口号
#注意:对于伪集群,端口需要不同。
clientPort=2181
# 客户端最大连接数
#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
# server.id=host:port1:port2
# id 是一个数字(1~255),代表服务器编号Server ID,标识机器在集群中的机器序号,dataDir目录下的myid文件内容就是此 ID
# host 是此服务器IP地址
# port1 是此服务器与集群中的Leader服务器交换信息的端口
# port2 当集群中的Leader服务宕机后,集群中的其他服务器使用此端口相互通信,重新选举出新的Leader
# 注意:若配置为伪集群,因为 host 都相同,所以 port2 配置的实例通信端口不能一样
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888
3、为集群各服务器创建myid文件
创建的myid文件的位置:zoo.cfg文件中 dataDir=/tmp/zkdata 参数配置的目录;
创建的myid文件的内容:zoo.cfg文件中 server.id=host:port1:port2 中的id,与服务器一一对应,且集群中的服务器id各不相同。
分别登录server1、server2、server3执行,操作、配置不同:
##登录server1
cd /tmp/zkdata
echo "1" > myid
##登录server2
cd /tmp/zkdata
echo "2" > myid
##登录server3
cd /tmp/zkdata
echo "3" > myid
4、启动Zookeeper服务
分别登录server1、server2、server3执行,操作、配置相同:
cd /usr/local/services/zookeeper/zookeeper-3.4.13/bin
##启动服务
./zkServer.sh start

##查看进程号是否存在
jps

##查看服务状态
./zkServer.sh status



注意:当只启动server1时,执行 ./zkServer.sh status 查看状态如下:

原因: zoo.cfg配置文件中设置集群内有3台服务器,仅启动节点server1,投票数不会过半,所以server1上提示“It is probably not running”。也就是说:在完成Leader选举之前,集群中启动zookeeper server的服务器并不会创建服务器实例提供服务。若此时执行命令 ./zkServer.sh start-foreground 查看日志,也将有java.net.BindException错误,待启动集群中其它节点后,status将会因产生有效投票结果而变化。
##查看服务启动详细日志
./zkServer.sh start-foreground
##默认服务启动日志文件
cat /usr/local/services/zookeeper/zookeeper-3.4.13/bin/zookeeper.out
三、常见报错
1、nexpected exception, exiting abnormally java.net.BindException: 地址已在使用

检查是否是端口占用,kill相应进程或者更改服务端口:
sudo netstat -nltp | grep 2181
检查集群中所有服务器的防火墙配置:
##查看防火墙状态
firewall-cmd --state
##关闭防火墙
systemctl stop firewalld.service
四、参考资料
参考书籍:从Paxos到Zookeeper:分布式一致性原理与实践
DeepInThought
出处:
https://www.cnblogs.com/DeepInThought
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【2】Zookeeper安装的更多相关文章
- zookeeper安装及部署
安装及部署 一. 单机安装.配置 1.下载zookeeper二进制安装包 下载 curl -L -O http://apache.fayea.com/zookeeper/stable/zookeepe ...
- ZooKeeper 安装部署及hello world(转)
ZooKeeper 安装部署及hello world 先给一堆学习文档,方便以后查看官网文档地址大全:OverView(概述)http://zookeeper.apache.org/doc/r3.4 ...
- ZooKeeper学习第二期--ZooKeeper安装配置
一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物 ...
- Zookeeper安装部署
Zookeeper安装 1. 安装 wget http://www.apache.org/dist//zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz ...
- ZooKeeper 安装部署及hello world
ZooKeeper 安装部署及hello world 先给一堆学习文档,方便以后查看官网文档地址大全: OverView(概述)http://zookeeper.apache.org/doc/r3. ...
- zookeeper 安装
Zookeeper安装 一. 下载zookeeper http://www.apache.org/dist/zookeeper/stable/ 二. 解压zookeeper.tar >& ...
- ZooKeeper安装与运行
ZooKeeper安装与运行 首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等目录.“bin目录”中存放有运行脚本:“conf目 ...
- zookeeper安装以及遇到的一些坑
最近项目中用到了storm,然后storm中用到了zookeeper,然后今天抽空整理一下zookeeper的安装使用,原来后期再慢慢学习. 本篇文档,操作部分是摘自其他博客,里边的问题分析是自己在实 ...
- Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用
https://www.cnblogs.com/leeSmall/p/9563547.html 一.Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面 ...
- zookeeper安装(单机版)
1:查看当前服务器IP: # ifconfig 情况1:直接可以看到自己的IP:192.168.164.130 情况2:看不到自己的IP(但是能看到ifcfg-开头的东西,如:ifcfg-eno167 ...
随机推荐
- WdatePicker没有效果怎么办
1:如果WdatePicker没有效果时间输入框 或报 invalid property:firstDayOfWeek 个错误. 2:网上解决方法有很多,但很多都不规范. 解决方法:重新下载(下载地址 ...
- 【转载】用jquery给select option 赋值
var dataList = [ "6211125886667895", "6211125886667892", "6211125886667897& ...
- something about gdb
1 gdb 基础命令 b(break): 添加断点 r(run): 重头开始运行程序 n(next): 下一步 c(continue): 程序继续运行,直到下一处断点,或者程序运行到结束 q ...
- JSX AS DSL? 写个 Mock API 服务器看看
这几天打算写一个简单的 API Mock 服务器,老生常谈哈?其实我是想讲 JSX, Mock 服务器只是一个幌子. 我在寻找一种更简洁.方便.同时又可以灵活扩展的.和别人不太一样的方式,来定义各种 ...
- 架构模式: Saga
架构模式: Saga 上下文 您已应用每服务数据库模式.每个服务都有自己的数据库.但是,某些业务事务跨越多个服务,因此您需要一种机制来确保服务之间的数据一致性.例如,假设您正在建立一个客户有信用额度的 ...
- 【AMAD】django-social-auth -- 让django使用社交网络oauth鉴权变得极为轻松!
简介 个人评分 简介 django-social-auth1集成的Oauth API包括: Google OpenID Google Oauth Google Oauth2 Yahoo OpenID ...
- 【FFMPEG】ffmpeg 时间戳问题汇总
ffmpeg 时间戳问题汇总 http://www.cnblogs.com/loveclover/archive/2011/03/23/1993065.html 问题是这样的 用一个 VLC(流媒体客 ...
- Mac 操作小技巧
系统版本 MacOs Mojava # 快捷键篇: 1. 打开终端:command+空格,输入terminal:在终端页面,新建终端command + T 2. 打开文件夹:command + T 3 ...
- matplotlib库之直方图
例题:假设你获取了250部电影的时长(列表a中),希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据? 一些概念及问题: 把数据分 ...
- JWT的认识和session的区别
1.前后端分离框架中前端和后端域名不同,不能跨域请求,加上移动端无cookie,所以无法使用session.2.基于token的认证和传统的session认证的区别: 传统的session认证: 我们 ...