大数据:Zookeeper 集群搭建


Zookeeper 简介

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
在这里插入图片描述
ZooKeeper包含一个简单的原语集,提供Java和C的接口。

ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_home\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

一,Zookeeper 安装环境搭建

环境配置

需要搭建三个节点:1个主节点,2个从节点。在配置前需要配置好虚拟机网络静态IP,同步时间,关闭防火墙和使用Linux SSH(安全Sheel)。按照下面设立的Linux环境提供的步骤,本次采用的系统为centos-7-x86_64、单核、2GB内存。其三个节点分别取名为master、slave1和slave2。

(1)配置虚拟机网络模式

1.虚拟机网络模式设置为NET模式。选中master节点,右击,在弹出的快捷菜单中选“设置”命令。在“虚拟机设置-硬件-网络适配器”中进行设置。
在这里插入图片描述

2.使用命令reboot重启系统。

(2)配置虚拟机静态IP

1.配置虚拟机网络同样的网段,选择“编辑”——“虚拟网络编辑器”命令进行配置。
在这里插入图片描述

2.进入编辑器之后,设置DHCP的子网IP为192.168.130.128~254。
在这里插入图片描述
3.NAT设置网关为192.168.130.2
在这里插入图片描述

4.配置centos 7系统的静态ip。

(1) 修改主机名

命令1:hostnamectl set hostname master
命令2:vi /etc/sysconfig/network

修改内容如下:

#created by anaconda
NETWORKING=yes
HOSTNAME=master

(2) 修改IP地址

  • 修改网卡配置

命令:vi /etc/sysconfig/network-scripts/ ifcfg-ens33

修改内容

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=583eeb6a-d778-4a01-8f70-f8077741b9e8
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.130.130
NETMASK=255.255.255.0
PREFIX=24
GATEWAY=192.168.130.2
DNS1=192.168.130.2
  • 重启网络服务

命令:systemctl restart network

(3) 修改IP地址和主机名的映射关系

命令:vi /etc/hosts

192.168.130.130 master
192.168.130.131 slave1
192.168.130.132 slave2
  • 关闭防火墙

命令:

systemctl stop firewalld.service
systemctl disable firewalld.service

(3)SSH设置和密钥生成

SSH设置需要在集群上执行不同的操作,如启动、停止和分布式守护Shell操作。进行身份验证不同的Hadoop用户,需要一种用于Hadoop的用户提供的公钥/私钥对,并使不同的用户共享。以下的命令用于生成使用SSH密钥值对。复制公钥id_rsa.pub为authorized_keys,并提供所有者,读写权限到authorized_keys文件。
命令:

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/ .ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

验证SSH:ssh localhost

二,Zookeeper安装

(1)下载安装Zookeeper

下载zookeeper-3.4.10.tar.gz,上传到目录/opt/software下。通过以下命令解压到目录/opt/module中。

命令:tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/

(2)配置zookeeper环境变量

在/etc/profile文件最后追加相关内容。

vi /etc/profile

追加内容如下:

#ZOOKEEPER
export ZOOKEEPER_HOME= /opt/module/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin

(3)在/opt/module/zookeeper-3.4.10/目录下创建data/zkData

命令:mkdir -p data/zkData

(4)重命名/opt/module/zookeeper-3.4.10/conf目录下的zoo_sample.cfg为zoo.cfg

mv zoo_sample.cfg zoo.cfg

(5)配置zoo.cfg文件

dataDir=/opt/module/zookeeper-3.4.10/data/zkData
###增加如下配置
#######################cluster#######################
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

三,配置Zookeeper集群

1. 在/opt/module/zookeeper-3.4.10/data/zkData目录下创建一个myid的文件

touch myid

编辑myid文件,在文件中添加与server对应的编号:

master的myid文件内容:1

2. 分发zookeeper所有文件

(1)将master虚拟机上的Zookeeper分发到slave1和slave2虚拟机上。

虚拟机slave1:

scp -r $ZOOKEEPER_HOME root@slave1:$ZOOKEEPER_HOME

虚拟机slave2:

scp -r $ZOOKEEPER_HOME root@slave2:$ZOOKEEPER_HOME

(2)将master虚拟机上环境分发到slave1和slave2虚拟机上。

虚拟机slave1:

scp /etc/profile root@slave1:/etc/profile

虚拟机slave2:

scp /etc/profile root@slave2:/etc/profile

(3)在slave1和slave2虚拟机上分别执行下列命令让环境变量生效。

source /etc/profile

3. 修改myid文件中内容为2、3

slave1的myid文件内容:2
slave2的myid文件内容:3

4. 分别启动Zookeeper

slave0:zkServer.sh start
slave1:zkServer.sh start
slave2:zkServer.sh start
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁辰兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值