背景介绍

最近研究大数据,大数据很多组件都需要zookeeper进行管理,理解zookeeper运行原理,安装配置,参数设置对后续大数据深入打下一个好基础。Zookeeper用java开发,所以安装的时候需要先JDK。

实验环境

  • 实验环境:Win7下vmware虚拟机
  • 操作系统:CentOS 6.5 x64
  • JDK:jdk-8u161-linux-x64
  • Zookeeper:zookeeper-3.4.11

系统规划

按照zookeeper leader选举策略,达到法定投票数的一半以上才会被选举为leader,所以zookeeper集群服务节点最好是奇数个。本实例我们部署3个zookeeper服务节点,成为一个集群。

  • s1.itclj.zk;192.168.86.137;1核;1G
  • s2.itclj.zk;192.168.86.138;1核;1G
  • s3.itclj.zk;192.168.86.139;1核;1G

准备工作:系统环境搭建

以下操作均用root用户操作。

1.网络配置(所有节点)

a)修改hostname

vim /etc/sysconfig/network


重启操作系统生效

reboot

b)配置hosts

vim /etc/hosts

添加ip和主机名映射

192.168.86.137 s1.itclj.zk
192.168.86.138 s2.itclj.zk
192.168.86.139 s3.itclj.zk

2.关闭防火墙和SELinux

注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
关闭防火墙:

service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)

关闭SELINUX:

setenforce 0 (临时生效)  
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

3.安装JDK

一般情况下,我们都要将linux自带的OPENJDK卸载掉,然后安装SUN的JDK。
由于我的CentOS安装的是mini版本的,没有自带jdk所以可以直接安装。
从Oracle官网下载JDK安装包:
http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz?AuthParam=1517808422_bdd9ddc0a30c84fe1961a9a2f6f1eb63
我下载的是JDK8的最新版本:jdk-8u161-linux-x64.tar.gz
下面是JDK的配置步骤。
在/usr目录下建立目录/java,

cd /usr
mkdir java

把JDK安装包上传到/usr/java目录,解压JDK安装包,

tar -zxvf jdk-8u161-linux-x64.tar.gz

配置环境变量

vim /etc/profile

/etc/profile中添加下面配置项

JAVA_HOME=/usr/java/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

刷新环境变量使配置立即生效

source /etc/profile

检查JDK是否配置成功

java -version

Zookeeper配置

一、目录规划

  • /home/zookeeper/data:数据树模糊快照
  • /home/zookeeper/datalog:事物日志,生产环境最好放单独一块磁盘
  • /home/zookeeper/app:zookeeper程序
  • /home/zookeeper/logs:zookeeper运行日志

创建目录

mkdir /home/zookeeper/data
mkdir /home/zookeeper/datalog
mkdir /home/zookeeper/app
mkdir /home/zookeeper/logs

二、配置zookeeper主配置文件

上传zookeeper程序包到app目录然后解压。

tar -zxvf zookeeper-3.4.11.tar.gz

程序包解压出来后有个zoo_sample.cfg,这个文件就是样例配置,把该配置复制一份为zoo.cfg

cp zoo_sample.cfg zoo.cfg

修改zoo.cfg为下面配置

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/datalog
clientPort=2181

server.1=s1.itclj.zk:2888:3888
server.2=s2.itclj.zk:2888:3888
server.3=s3.itclj.zk:2888:3888


修改log4j.properties配置,把日志输出路径配置到自己指定的目录下。

zookeeper.log.dir=/home/zookeeper/logs
zookeeper.tracelog.dir=/home/zookeeper/logs

三、设置myid

myid唯一标识一个zookeeper实例。
在/home/zookeeper/data目录创建myid文件并设置值。
该值必须保证每个zookeeper服务器唯一。

vim /home/zookeeper/data/myid

s1.itclj.zk

s2.itclj.zk

s3.itclj.zk

四、启动服务(所有节点)

zkServer.sh start


检查服务运行状态

zkServer.sh status

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐