阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Zookeeper HA 部署方案

186次阅读
没有评论

共计 3944 个字符,预计需要花费 10 分钟才能阅读完成。

一、准备服务器环境

ZooKeeper Cluster

HostIP
zookeeper1192.168.50.228
zookeeper2192.168.50.229
zookeeper3192.168.50.230

注:为了测试方便,把所有服务器的防火墙都关闭了

#chkconfig iptables off #永久关闭防火墙

#chkconfig iptables on #永久开启防火墙

使用主机名代替 IP 更加易读,修改方法如下:

1、修改主机名

#vim /etc/sysconfig/network

HOSTNAME=zookeeper1 #主机名称

2、配置 hosts 文件(相当于么有 DNS 服务器)

192.168.50.228 zookeeper1

192.168.50.229 zookeeper2

192.168.50.230 zookeeper3

二、安装 SunJRE

2.1、JRE7 下载

下载地址:

http://download.Oracle.com/otn-pub/java/jdk/7u75-b13/jre-7u75-linux-x64.tar.gz?AuthParam=1426833144_785a1e689cccd502d1def7b4a777c646

2.2、安装

把 jre7.tar.gz 拷贝到安装目录,然后解压

#tar -zxvf jre7.tar.gz

2.3、配置环境变更

#vim /etc/profile

export JAVA_HOME=/home/bdata/software/jre1.7.0_75

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export ZOOKEEPER_HOME=/home/bdata/software/zookeeper-3.4.6

export PATH=$PATH: $JAVA_HOME/bin :$ZOOKEEPER_HOME/bin

2.4、设置默认 JRE

sudo update-alternatives

 –install /usr/bin/java java /home/bdata/software/jre1.7.0_75/bin/java 300

三、安装 zookeeper 集群

•1、下载 zookeeper

下载地址:

http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

2、安装 & 配置 zookeeper

把 tar 文件解压到安装目录

#tar -zxvf zookeeper-3.4.6.tar.gz

在 conf 文件夹下创建 zoo.cfg

#cd ${zookeeper_home}/conf

#cp zoo_sample.cfg zoo.cfg

#vim zoo.cfg

# 配置如下

#Zookeeper 服务器心跳时间,单位毫秒

tickTime=2000

# 投票选举新 leader 的初始化时间

initLimit=10

#Leader 与 Follower 之间的最大响应时间单位,响应超过 syncLimit*tickTime,Leader 认为 Follwer 死掉,从服务器列表中删除 Follwer

syncLimit=5

# 数据存放目录(持久化路径)

dataDir=/home/bdata/datadir/zk/data

# 日志保存路径  这个要自己新建

dataLogDir=/home/bdata/datadir/zk/logs

clientPort=2181

# 最大的客户端连接数,这里我们设置 10000

maxClientCnxns=10000

# 集群配置,zookeeper1 表示服务机器名可以使用 IP 或机器名,使用机器名需要设置 hosts 文件,集群部署需要在 dataDir 指定的目录下创建一个 myid 文件,里面设置 1 -255 之间的整数用作 zookeeper 唯一标识名称,集群必须设置该值

如 /home/bdata/datadir/zk/data/myid

echo “1” > myid

#server. 服务器标识 =IP 或机器名: 选举 leader 端口(zk 之间的通讯): 接收选举数据通信端口,还有一个客户端的端口 2181,这三个端口不要混淆

server.1=zookeeper1:2887:3887

server.2=zookeeper2:2887:3887

server.3=zookeeper3:2887:3887

•3、设置日志输出路径

#vim ${zookeeper_home}/bin/zkEnv.sh

################# 截取部分配置 #################

ZOOBINDIR=”${ZOOBINDIR:-/usr/bin}”

ZOOKEEPER_PREFIX=”${ZOOBINDIR}/..”

if [“x$ZOOCFGDIR” = “x”]

then

  if [-e “${ZOOKEEPER_PREFIX}/conf” ]; then

    ZOOCFGDIR=”$ZOOBINDIR/../conf”

  else

    ZOOCFGDIR=”$ZOOBINDIR/../etc/zookeeper”

  fi

fi

 

if [-f “${ZOOCFGDIR}/zookeeper-env.sh” ]; then

  . “${ZOOCFGDIR}/zookeeper-env.sh”

fi

 

if [“x$ZOOCFG” = “x”]

then

    ZOOCFG=”zoo.cfg”

fi

 

ZOOCFG=”$ZOOCFGDIR/$ZOOCFG”

 

if [-f “$ZOOCFGDIR/java.env”]

then

    . “$ZOOCFGDIR/java.env”

fi

 

if [“x${ZOO_LOG_DIR}” = “x” ]

then

# 设置日志输出路径,默认为执行 zkServer.sh start 命令所在目录生成日志文件

    ZOO_LOG_DIR=”/home/bdata/software/datadir/zk/logs/”

fi

•4、启动 zookeeper

每个节点都启动 zookeeper 服务

#zkServer.sh start

查看 zookeeper 运行状态

#zkServer.sh status

// 显示如下信息表示集群启动失败(注:集群环境至少启动两台服务器才能成功)

JMX enabled by default

Using config: /home/bdata/software/zookeeper-3.4.6/bin/../conf/zoo.cfg

Error contacting service. It is probably not running.

//**********************************************************************

// 显示如下信息表示集群启动成功

JMX enabled by default

Using config: /home/bdata/software/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: leader  #leade 节点显示 leader, 普通节点显示 follower

四、注意事项

1、检查状态(zkServer.sh status)出现:Error contacting service. It is probably not running.

解决方法:

打开 zkServer.sh

找到

status)

    STAT=`echo stat | nc localhost $(grep clientPort “$ZOOCFG” | sed -e ‘s/.*=//’) 2> /dev/null| grep Mode`

在 nc 与 localhost 之间加上 -q 1(是数字 1 而不是字母 l)

如果已存在则去掉

2、Unkown Host/ 无法映射主机名错误 / 连接超时

解决方式,Zookeeper 内部是通过配置主机名然后去 DNS 中查找的 IP 进行访问的,所以这里你必须采用主机名的方式进行访问,一定要在本机 HOST 中配置 IP 映射。

Ubuntu 14.04 安装分布式存储 Sheepdog+ZooKeeper  http://www.linuxidc.com/Linux/2014-12/110352.htm

CentOS 6 安装 sheepdog 虚拟机分布式储存  http://www.linuxidc.com/Linux/2013-08/89109.htm

ZooKeeper 集群配置 http://www.linuxidc.com/Linux/2013-06/86348.htm

使用 ZooKeeper 实现分布式共享锁 http://www.linuxidc.com/Linux/2013-06/85550.htm

分布式服务框架 ZooKeeper — 管理分布式环境中的数据 http://www.linuxidc.com/Linux/2013-06/85549.htm

ZooKeeper 集群环境搭建实践 http://www.linuxidc.com/Linux/2013-04/83562.htm

ZooKeeper 服务器集群环境配置实测 http://www.linuxidc.com/Linux/2013-04/83559.htm

ZooKeeper 集群安装 http://www.linuxidc.com/Linux/2012-10/72906.htm

Zookeeper3.4.6 的安装 http://www.linuxidc.com/Linux/2015-05/117697.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-03/128912.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3944字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中