云存储技术
实验目的要求:
1、掌握在完全分布模式的整合平台中Zookeeper的安全分布模式的安装
2、完成Zookeeper的完全分布模式的安装
3、Zookeeper服务能够正常启动和连接
4、Zookeeper控制台能够正常进入
5、Zookeeper控制台命令能够正常使用
实验环境 :
1、五台独立PC机或虚拟机
2、主机之间有有效的网络连接
3、每台主机内存2G以上,磁盘剩余空间500M以上
4、所有主机上已安装CentOS 7.4_64操作系统
5、所有主机已完成网络属性配置
6、所有主机已安装JDK
软件版本:
选用Zookeeper的3.4.9版本,软件包名为Zookeeper-3.4.9.tar.gz
集群规划:
Zookeeper采用的投票算法要求其至少有3个及以上的服务节点,且服务节点数总数为奇数时为最有效的配置,所以将集群的五台主机全部作为服务节点,具体规划如下:
主机名 IP地址 服务描述
Cluster-01 192.168.10.111 Zookeeper服务
Cluster-02 192.168.10.112 Zookeeper服务
Cluster-03 192.168.10.113 Zookeeper服务
Cluster-04 192.168.10.114 Zookeeper服务
Cluster-05 192.168.10.115 Zookeeper服务
实验步骤 :
一、Zookeeper基本安装配置
*该项的所有操作步骤使用专门用于集群的用户admin进行
*此项只在一台主机操作,然后再下一步骤进行同步安装与配置
1、首先,将Zookeeper软件包“zookeeper-3.4.9.tar.gz”上传到用户家目录的“setups”目录下,然后进行解压和设置环境变量;
#创建用于存放Zookeeper相关文件的目录,进入该目录,将软件包解压
#配置Zookeeper相关的环境变量,并使环境变量立即生效
实验步骤:
#查看新添加和修改的环境变量是否设置成功,以及环境变量的值是否正确
二、Zookeeper完全分布模式配置
该项的所有操作步骤使用专门用于集群的用户admin进行
#进入Zookeeper相关文件的目录,分布创建用于存放数据文件的目录“data”和用于存放日志文件的目录“logs”
#进入Zookeeper的配置文件所在目录,拷贝生成Zookeeper的配置文件
#对配置文件进行修改
三、同步安装和配置
该项的所有操作步骤使用专门用于集群的用户admin进行
将“zookeeper”目录和“./bash_profile”文件发给集群中所有其他主机,发送目标为集群专用用户admin,发送目标路径为“/home/admin”,即集群专用用户admin的家目录。然后每台执行source ~/.bash_profile使环境变量生效。
#scp -r ~/zookeeper ~/.bash_profile admin@Cluster-:/home/admin
#在每台主机或虚拟机上使用命令“echo $ZOOKEEPER_HOME”、“echo $PATH”查看新添加和修改的环境变量是否设置成功,以及环境变量的值是否正确。
四、配置Zookeeper节点标识文件
该项的所有操作步骤使用专门用于集群的用户admin进行
在集群中所有主机上使用命令“echo ‘’ > ~/zookeeper/data/myid”创建Zookeeper的节点标识文件,期中“”为节点的编号,与配置文件server.=Cluster-01:2888:3888中“server.”中的“*”相对应。
五、Zookeeper完全分布模式启动和验证
*该项的所有操作步骤使用专门用于集群的用户admin进行
在集群中所有主机上使用命令“zkServer.sh.start”启动Zookeeper服务的脚本,若启动过程没有报错,并且显示“STARTED”则表示启动成功。
#zkServer.sh.start
在集群中所有主机上使用命令“jps”查看Java进程信息,若存在一个名为“QuorumPeerMain”的进程,则表示Zookeeper启动成功。
实验步骤
在集群中所有主机上使用命令“zkServer.sh status”查看该节点Zookeeper服务当前的状态,若集群中只有一个“leader”节点,其余均为“follower”节点,则集群的工作状态正常。
使用命令“zkCli.sh -server Cluster-:2181”利用Zookeeper的命令行工具连接Zookeeper集群。其中“”为集群中节点的编号,可以选择连接集群中任意一个节点,若显示“CONNECTED”则表示连接正常,命令行工具可以正常使用,在命令行工具中使用命令“quit”可以退出工具程序。
实验总结:
Zookeeper是一种在分布式系统中被广泛用来作为:分布式状态管理、分布式协调管理、分布式配置管理、和分布式锁服务的集群;Zookeeper集群中节点个数一般为奇数个(>=3),若集群中Master挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务;Zookeeper集群中的节点,根据其身份特性分为leader、follower、observer;leader负责客户端writer类型的请求;follower负责客户端reader类型的请求,并参与leader选举;observer是特殊的follower,可以接收客户端reader请求,但是不会参与选举,可以用来扩容系统支撑能力,提高读取速度;一个 ZooKeeper 集群同一时刻只会有一个 Leader,其他都是 Follower 或 Observer;ZooKeeper 默认只有 Leader 和 Follower 两种角色,没有 Observer 角色;
Zookeeper集群搭建完毕之后,可以通过客户端脚本连接到zookeeper集群上面,对客户端来说,zookeeper集群是一个整体,连接到zookeeper集群实际上感觉在独享整个集群的服务。