Hadoop之Zookeeper安装
实验目的要求
1、完成Zookeeper的完全分布模式的安装
2、Zookeeper服务能够正常启动和连接
3、Zookeeper控制台能够正常进入
4、Zookeeper控制台命令能够正常使用
实验环境
1、五台独立PC机或虚拟机
2、主机之间有有效的网络连接
3、每台主机内存2G以上,磁盘剩余空间500M以上
4、所有主机已安装CentOS 7.4操作系统
5、所有主机已完成网络属性配置
6、所有主机已安装JDK
软件版本
选用Zookeeper的3.4.9版本,软件包名为zookeeper-3.4.9.tar.gz
集群规划
Zookeeper采用的投票算法要求其至少有3个以上的服务节点,且服务节点数总数为奇数时为最有效的配置,所以将集群的五台主机全部作为服务节点,具体规划如下:
实验步骤
1、 Zookeeper基本安装配置
*该项所有操作步骤使用专门用于集群的用户admin进行
*此项只在一台主机操作,然后在下一步骤进行同步安装于配置。
1.1上传Zookeeper软件包“zoookeeper-3.4.9.tar.gz”到用户家目录的“setups”目录下。然后进行解压和环境变量设置。
1.2创建用于存放Zookeeper相关文件的目录并且进入该目录将软件包解压
1.3配置Zookeeper的相关环境变量
1.4使新配置的环境变量立即生效,查看新添加和修改的环境变量是否设置成功,以及环境变量的值是否正确
2、Zookeeper完全分布模式配置
*该项的所有操作步骤使用专门用于集群的用户admin进行
2.1进入Zookeeper相关文件的目录,分别创建用于存放数据的文件的目录“data”和用于存放日志文件的目录“logs”
2.2进入Zookeeper的配置文件所在目录,拷贝生成Zookeeper的配置文件。
2.3对配置文件进行修改。
$vi zoo.cfg
*以下配置项若已经存在则修改其对应值,若不存在则在配置文件末尾进行添加:
3、同步安装和配置
*该项的所有操作步骤使用专门用于集群的用户admin进行
3.1将“zookeeper”目录和“.bash_profile”文件发给集群中所有主机,发送目标用户为集群专用用户admin,发送目标路径为“/home/admin”,即集群专用用户admin的家目录。然后每台执行source ~/.bash_profile使环境变量生效。
3.2在每台主机或虚拟机上,使用命令“echo $ZOOKEEPER_HOME”、“echo $PATH”查看新添加和修改的环境变量是否设置成功,以及环境变量的值是否正确。
#echo $ZOOKEEPER_HOME
#echo $PATH
4、配置Zookeeper节点标识文件
*该项的所有操作步骤使用专门用于集群的用户admin进行
4.1在集群中所有主机上使用命令创建Zookeeper的节点标识文件,其中“”为节点的编号,与配置文件server.=Cluster-01:2888:3888中的“server.”中的“”对应
$echo ‘1’ > ~/zookeeper/data/myid
5、Zookeeper完全分布模式启动和验证
*该项的所有操作步骤使用专门用于集群的用户admin进行
5.1操作前,先关闭防火墙(root用户下)
5.2在集群中所有主机上启动Zookeeper服务的脚本,若启动过程中没有报错,并且显示“STARTED”则标识启动成功
$./zkServer.sh start
5.3在集群中所有主机上查看java进程信息,若存在一个名为“QuorumPeerMain”的进程,则表示Zookeeper服务启动成功。
$jps
5.4在集群服务中所有主机上查看该节点Zookeeper服务当前的状态,若集群中只有一个“leader”节点,其余的均为“follower”节点,则集群的工作状态正常。防火墙必须关闭。如果防火墙未关闭,状态是Error contacting server.It is probably not running.。
$./zkServer.sh status
5.5利用Zookeeper的命令行工具连接Zookeeper集群,其中“*”为集群中节点的编号,可以选择连接集群中的任意一个节点,若显示“CONNECTED”则表示连接正常,命令行工具可以正常使用,在命令行工具中使用命令“quit”可以退出工具程序。
$zkcli.sh -server Cluster-02:2181
出现的问题与解决方案
出现的问题:在启动zookeeper服务的脚本的时候,显示未找到该命令,
解决方案:经过上网搜索找到原因,是因为执行命令的路径错误,然后找到正确的zkServer.sh文件路径,执行命令./zkServer.sh start之后zookeeper服务的脚本启动成功。