一、ZooKeeper相关概念简介:

ZooKeeper是一个开源的、分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

ZooKeeper服务器是用Java创建的,它在JVM上运行。你需要使用JDK 6或更高版本

 

二、环境:

IP地址

节点名称

操作系统

JDK版本

ZooKeeper版本

192.168.103.137

hadoop01

CentOS 6.5 x86_64

1.7.0_79

zookeeper-3.4.12

192.168.103.138

hadoop02

192.168.103.140

hadoop03

 

三、安装前准备:

 

1、  配置hostname

 

[root@hadoop01 ~]# vi /etc/sysconfig/network

 

 

分别修改三台主机的HOSTNAME为hadoop01、hadoop02、hadoop03

NETWORKING=yes
    HOSTNAME=hadoop01

 

2、  配置hosts解析,三台都要处理

vi /etc/hosts

 

在后面添加:

192.168.103.137 hadoop01
    192.168.103.138 hadoop02
    192.168.103.140 hadoop03

 

节点之间可以互相ping通,说明通信正常

查看操作系统版本:cat /etc/issue

查看系统位数:getconf LONG_BIT

 

四、安装配置JDK:

1、上传jdk并解压

[root@hadoop01 ~]# cd /usr/local/src/
    [root@hadoop01 src]# ls
    jdk-7u79-linux-x64.tar.gz
    [root@hadoop01 src]# tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/local/

 

2、配置环境变量

vi /etc/profile

 

按shift+g(G)跳到文件结尾,添加:

export JAVA_HOME=/usr/local/jdk
    export PATH=${JAVA_HOME}/bin:$PATH

 

使环境变量生效:

source /etc/profile

 

检查是否安装成功,输入Java -version

zookeeper集群 备机下载配置超时 zookeeper 集群安装_hadoop

 

五、安装配置ZooKeeper:

1、上传zookeeper并解压

[root@hadoop01 ~]# ls
    anaconda-ks.cfg install.log install.log.syslog
    [root@hadoop01 ~]# ls
    anaconda-ks.cfg install.log install.log.syslog zookeeper-3.4.12.tar.gz
    [root@hadoop01 ~]# mv zookeeper-3.4.12.tar.gz /usr/local/src/
    [root@hadoop01 ~]# cd /usr/local/src/
    [root@hadoop01 src]# ls
    jdk-7u79-linux-x64.tar.gz zookeeper-3.4.12.tar.gz
    [root@hadoop02 src]# tar -zxvf zookeeper-3.4.12.tar.gz -C /usr/local/
[root@hadoop01 src]# cd /usr/local/
    [root@hadoop01 local]# ls
    bin etc games include jdk lib lib64 libexec sbin share src zookeeper-3.4.12
    [root@hadoop01 local]# mv zookeeper-3.4.12/ zookeeper
   [root@hadoop01 local]# ls
    bin etc games include jdk lib lib64 libexec sbin share src zookeeper
   [root@hadoop01 local]#

 

2、  创建日志数据目录

[root@hadoop01 ~]# cd /usr/local/zookeeper/
    [root@hadoop01 zookeeper]# mkdir data
    [root@hadoop01 zookeeper]# mkdir logs

 

3、  修改配置文件

[root@hadoop02 ~]# cd /usr/local/zookeeper/
    [root@hadoop01 zookeeper]# cd conf/
    [root@hadoop01 conf]# ls
    configuration.xsl log4j.properties zoo_sample.cfg
    [root@hadoop01 conf]# mv zoo_sample.cfg zoo.cfg
    [root@hadoop01 conf]# ls
    configuration.xsl log4j.properties zoo.cfg
    [root@hadoop01 conf]# vi zoo.cfg

修改dataDir,添加dataLogDir,添加节点

zookeeper集群 备机下载配置超时 zookeeper 集群安装_服务器_02

备注:server.A=B:C:D

A:一个数字,表示这是第几台服务器

B:此服务器的IP地址或/etc/hosts文件中映射的主机名

C:2888,表示此服务器与集群中的Leader服务器交换信息的端口

D:3888,表示如果集群中的Leader服务器宕机了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口

 

4、  创建myid文件:

在server1上执行:# echo 1 > /usr/local/zookeeper/data/myid

在server2上执行:# echo 2 > /usr/local/zookeeper/data/myid

在server3上执行:# echo 3 > /usr/local/zookeeper/data/myid

备注:myid文件中只有一行内容,且内容为该节点对应的server.id中的id编号

 

5、  配置zookeeper到环境变量中:

vi /etc/profile

 

按shift+g(G)跳到文件结尾,添加:

export ZOOKEEPER_HOME=/usr/local/zookeeper
    export PATH=${ZOOKEEPER_HOME}/bin:$PATH

 

使环境变量生效:

source /etc/profile

 

六、启动ZooKeeper:

启动前要关闭防火墙:

[root@hadoop01 ~]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则:[确定]
iptables:正在卸载模块:[确定]
[root@hadoop01 ~]# chkconfig iptables off

 

 

启动:zkServer.sh start

状态:zkServer.sh status

zookeeper集群 备机下载配置超时 zookeeper 集群安装_服务器_03

启动完3台服务器后zookeeper状态为:

主机名

myid

状态

hadoop01

1

follower

hadoop02

2

leader

hadoop03

3

follower

顺序启动时,一般是第二台为leader,因为选举机制是按最大myid选的

停止:zkServer.sh stop

查看zookeeper进程:jps

zookeeper集群 备机下载配置超时 zookeeper 集群安装_服务器_04

 

六、开机启动ZooKeeper(可选)

vi /etc/rc.d/init.d/zookeeper

 

添加以下脚本:

#!/bin/bash
# chkconfig:35 81 82
# description:zookeeper server script

if [ -z $1 ]
    then
        echo "缺少位置参数"
        echo "请使用$0 {start|start-foreground|stop|restart|status|upgrade|print-cmd}"
        exit 1
fi

export JAVA_HOME=/usr/local/jdk
export ZOO_LOG_DIR=/usr/local/zookeeper/logs
ZOOKEEPER_HOME=/usr/local/zookeeper

/usr/local/zookeeper/bin/zkServer.sh $1

 

添加到开机启动项里:

chkconfig --add zookeeper
chkconfig zookeeper on
chkconfig --list

 

重启测试是否开机启动:reboot