小组作业——Zooeeper集群搭建

前话:

1.1什么是ZooKeeper&我们用它干什么?

谈到分布式集群,就离不开节点管理,而ZooKeeper主要服务于分布式系统可以用ZooKeeper来做节点的统一配置管理、统一命名服务、分布式锁、集群管理,在其中承担协调管理者的身份。现在越来越多的分布式系统都将ZooKeeper作为核心组件使用,比如Hadoop、HBase、Kafka等。

1.2题外话:

注意虚拟机的磁盘情况,以防范磁盘爆满的情况。硬盘容量太小会造成虚拟机打不开的情况,比如稍微执行一些操作,硬盘可用度都会爆满,操作hbase时尤为严重,所以如果太小建议先扩容。

zookeeper搭建需要安装jdk,因为zookeeper基于JVM运行,且版本要求在1.8及以上。

正篇:

步骤概述:

获取zookeeper安装包,上传至虚拟机解压,修改配置文件,创建相关目录,分发配置文件至其他机器,创建选举文件,修改环境变量并分发,启动zookeeper,查看客户端状态。

具体步骤:

2.1获取并解压安装包

2.1.1获取自己需要的相应版本的zookeeper安装包:

(1)学习通获取:

(2)官网获取:Apache ZooKeepericon-default.png?t=N7T8https://zookeeper.apache.org/releases.html

2.1.2上传解压

我这里是3.5.7版本,上传至/opt/software

在当前目录解压压缩包至指定路径

[tar 解压命令; -zxvf 解压缩参数, 根据包名的后缀而定; -C 指定路径]

#压缩包的名字要保证无误,与压缩包名无差
[root@hadoop1 software]# tar zxvf apache-zookeeper-3.5.gz -C /opt/module/

查看是否解压成功

这里为方便起见,将解压出来的安装包名改为“zookeeper”

[root@hadoop1 module]# mv apache-zookeeper-3.5.gz zookeeper

2.2修改配置文件

cd到目标文件所在路径

[root@hadoop1 software]#cd /opt/module/zookeeper/conf

为防止操作失误导致源文件丢失,我们预先创建目标文件,并将其更名为“zoo.cfg”

#复制并更名
[root@hadoop1 conf]# cp zoo_sample.cfg zoo.cfg
[root@hadoop1 conf]# ls

修改zoo.cfg文件配置:

      主机名以自己为准,server编号指向对应的三台虚拟机(节点),同时也和myid对应起来

2.3创建相关数据存放目录

2.3.1创建以上文件配置的对应目录

data:存储zookeeper工作所产生的数据文件

logs:存储zookeeper工作日志

[root@hadoop1 zookeeper]# mkdir data 
[root@hadoop1 zookeeper]# mkdir logs

2.4分发配置文件和创建myid文件

2.4.1分发配置文件

创建完数据存储目录后在进行分发文件,将安装包zookeeper分发给其他两台机器

#可以使用xsync命令,也可以使用scp(secure copy)远程拷贝命令,跨服务器拷贝文件
[root@hadoop1 module]# scp -r /opt/module/zookeeper hadoop2:/opt/module
[root@hadoop1 module]# scp -r /opt/module/zookeeper hadoop3:/opt/module

hadoop2分发成功

hadoop3分发成功

2.4.2创建myid文件

每台机器上分别创建myid,这里以Hadoop1为例

[root@hadoop1 data]# touch myid
[root@hadoop1 data]# ls

编辑三台机器myid,里边填写一个编号用于选举(与你的zoo.cfg中的server数字相对应)

[root@hadoop1 data]# vi myid
[root@hadoop2 data]# vi myid
[root@hadoop3 data]# vi myid

以Hadoop3为例,编辑成功

2.5修改环境变量并进行分发

原因:搭建环境变量后,可以在当前用户的任何目录下执行zkServer.sh start,能更好的运行程序。

而不进行环境变量的修改zookeeper的启动方式:必须进入bin目录下执行./zkServer.sh start。

为环境变量文件增加如下代码:

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

分发并覆盖更新环境变量文件至hadoop2、hadoop3

#分发至hadoop2 hadoop3 
#分发命令选择:xsync或scp

[root@hadoop1 /]# scp /etc/profile.d/my_env.sh hadoop2:/etc/profile.d/                                                                                                                     
[root@hadoop1 /]# scp /etc/profile.d/my_env.sh hadoop3:/etc/profile.d/

分别在每台机器上执行命令使环境变量生效

[root@hadoop1 /]# source /etc/profile.d/my_env.sh
[root@hadoop2 /]# source /etc/profile.d/my_env.sh
[root@hadoop3 /]# source /etc/profile.d/my_env.sh

2.6启动Zookeeper查看客户端状态

2.6.1启动集群

cd到zookeeper目录下进行zookeeper集群启动

[root@hadoop1 zookeeper]# bin/zkServer.sh start
[root@hadoop2 zookeeper]# bin/zkServer.sh start
[root@hadoop3 zookeeper]# bin/zkServer.sh start
2.6.2查看状态
[root@hadoop1 zookeeper]# bin/zkServer.sh status
[root@hadoop2 zookeeper]# bin/zkServer.sh status
[root@hadoop3 zookeeper]# bin/zkServer.sh status

server状态显示

三台机器进程均显示“QuorumPeerMain”即代表zookeeper启动成功

[root@hadoop1 zookeeper]# jps  
84306 NameNode
84468 DataNode
87048 QuorumPeerMain
95661 Jps
85775 NodeManager

[root@hadoop2 zookeeper]# jps
85216 NodeManager
96976 Jps
83927 DataNode
87304 QuorumPeerMain
85035 ResourceManager

[root@hadoop3 zookeeper]# jps
97184 Jps
83925 DataNode
85064 NodeManager
84074 SecondaryNameNode
87439 QuorumPeerMain

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值