前面理论讨论的差不多了,今天开始安装部署一个ZooKeeper集群。
1、准备三个节点(测试环境使用虚拟机就行,而且方便按需调整资源)。
序号 | IP | 名称配置 |
1 | 192.168.59.101 | 节点名称:node01,myid:1 |
2 | 192.168.59.102 | 节点名称:node02,myid:2 |
3 | 192.168.59.103 | 节点名称:node03,myid:3 |
说明:
(1)配置不需太高(2核、4G内存、100G硬盘 即可),
操作系统使用CentOS-7-x86_64-DVD-1708
(2)随着后续组件的部署,会共用这三个节点,到时候再动态调整参数。
如果不知道myid是什么意思,请阅读 ZooKeeper体系架构 。
2、准备相关安装包
序号 | 软件名称 | 下载地址 (自行下载) |
下载地址 (百度网盘下载) |
1 | JDK | https://linux.cn/article-4130-1.html | 链接:https://pan.baidu.com/s/1vVzLWZVRaMOqEf5pWxjc5w
提取码:请关注公众号“学点儿编程”,回复“百度网盘密码”获取。 |
2 | linux操作系统安装镜像- CentOS-7-x86_64-DVD-1708 |
https://linux.cn/article-4130-1.html | |
3 | Zookeeper | http://mirrors.hust.edu.cn/apache/zookeeper/stable/ | 链接:https://pan.baidu.com/s/1-7EGrRu0-470UDMzCrO-Zg 提取码:请关注公众号“学点儿编程”,回复“百度网盘密码”获取。 |
4 | Zookeeper配置文件 | --- | |
5 | Zookeeper多节点启动/停止脚本 | --- |
3、实现三个节点之间免密码登录
实现三个节点之间的互相ssh登录,方便三个节点之间文件交换。
(1)设置三个节点的名称 hostnamectl set-hostname node01/node02/node03 配置完后,重新登录虚拟机后通过hostname命令验证是否正确。 并在三个节点 /etc/hosts文件中添加以下记录,方便后续操作: 192.168.59.101 node01 192.168.59.102 node02 192.168.59.103 node03 (2)配置三个节点的SSH免费登录 登录101节点,进入.ssh目录进行配置 1)生成密钥:ssh-keygen -t rsa (一路回车即可) 2)再把node01的公钥分别复制给node02和node03 ssh-copy-id -i node02 ssh-copy-id -i node03 说明:复制过程需要输入node02和node03的密码 复制完后 在node01上通过 ssh node02可直接登录node02。 3)为了操作方便,可同时把node02、node03的公钥分别复制给其他两个节点。 |
3、上传安装包并安装
3.1 上传安装包
(1)建议安装上传下载工具lrzsz工具,方便本地和虚拟机之间进行文件上传和下载。
安装命令:yum install lrzsz 安装完后
|
(2)在三个节点创建相应的目录(放安装包)
mkdir -p /soft/hadoop 将相关的安装文件均上传到该目录(第1部分准备的那些) 通过rz命令进行文件上传。 说明:可上传到node01后,可通过scp 命令复制到另外两个节点。 |
3.2 开始安装
(1)安装JDK。
1)解压安装包,并设置软链接 cd /soft/hadoop tar -zxvf jdk-8u151-linux-x64.tar.gz ln -s /soft/hadoop/jdk1.8.0_151 /usr/local/jdk 2)设置环境变量 vim /etc/profile 并在 "done"行的下一行 输入以下内容: export JAVA_HOME=/usr/local/jdk export PATH=${JAVA_HOME}/bin:$PATH 配置完后,通过以下命令重新加载环境变量 source /etc/profile
至此,JDK安装完成。 说明:如果系统预装了 openjdk,可将其卸载(需确保其他应用没有依赖该openjdk)。卸载步骤如下: 查找已安装情况:rpm -qa | grep jdk 移除预装的 jdk(示例,可能版本不同,根据你的实际情况操作): yum -y remove java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64 |
(2)安装ZooKeeper
1)解压安装包,并设置软链接 cd /soft/hadoop tar -zxvf apache-zookeeper-3.5.8.tar.gz ln -s /soft/hadoop/apache-zookeeper-3.5.8 /usr/local/zookeeper 2)设置环境变量 vim /etc/profile 并在上面配置JDK环境变量的基础上继续配置,最后JDK和zookeeper的环境变量配置如下: export JAVA_HOME=/usr/local/jdk export ZOOKEEPER_HOME=/usr/local/zookeeper export PATH=$PATH:${ZOOKEEPER_HOME}/bin:${JAVA_HOME}/bin 配置完后,通过以下命令重新加载环境变量 source /etc/profile |
(3)配置ZooKeeper
1)拷贝样例配置文件并重命名zoo.cfg cd /usr/local/zookeeper/conf cp zoo_sample.cfg zoo.cfg 2)配置zoo.cfg的内容 vim zoo.cfg 填写内容如下: dataDir=/usr/local/zookeeper/data dataLogDir=/usr/local/zookeeper/log server.1=node01:2888:3888 server.2=node02:2888:3888 server.3=node03:2888:3888 说明: (1)dataDir和dataLogDir两个目录需要提前创建好,分别存储数据和日志。 (2)server.1 - server.3 分别是zookeeper的三个节点,依次编序号即可。后面三个属性值分别表示主机名、心跳端口、数据端口。 3)配置myid (三个zk节点,配置参数只有这一步不同) cd /usr/local/zookeeper/data 创建myid文件:touch myid 添加编号1:echo 1 > myid 注意:(1) > 左右有空格(2)三个节点分别写入1、2、3。 |
(4)配置其他两个节点 node02和node03
1)按上面的操作步骤分别安装JDK和zookeeper,并配置环境变量。 2)配置myid (后面两个分别设置为2和3)
说明:可通过scp命令,从 node01复制到node02和node03节点。 |
4、启动和停止zookeeper集群
1)单个启动和停止 启动:在3个节点上分别执行以下命令 /usr/local/zookeeper/bin/zkServer.sh start 查看zookeeper的状态 /usr/local/zookeeper/bin/zkServer.sh status 若启动正常,会显示 Mode: follower/leader相关内容 停止:在3个节点上分别执行以下命令 /usr/local/zookeeper/bin/zkServer.sh stop
2)批量启动和停止 一个zookeeper集群一般涉及3+以上节点,逐个启动和停止太麻烦了,可以写一个脚本,所有节点批量进行启动和停止。 #!/bin/bash echo "start zkserver..." for i in 1 2 3 do ssh node0$i "source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh start" done echo "zkServer started!" 上面是批量启动的脚本,批量停止的脚本改为stop即可。
|
好了,至此一个分布式的zookeeper集群装好了,zookeeper集群可以怎么操作呢?业内人士常说的 zookeeper 四字命令是指什么?
且看下回分解。
本想把zookeeper的操作在本次写完,发现篇幅会过于长,就分两次写吧。
通过上面部署过程可以看出,要想学好大数据、用好大数据,Linux的操作是必须的!!!
我这里有一份linux常用操作手册(按着操作一遍,你肯定能熟悉常用操作,应付大数据相关的操作基本没问题),想要该资料的同学,请 转发该篇文章到您的朋友圈(PS:不能屏蔽别人),然后把朋友圈截图发给我(请加我微信 "arno1649" ,备注“学点儿编程”),我发资料给您。 |
如果觉得这篇文章对您有帮助,欢迎关注公众号 “学点儿编程”,公众号不断推送干货文章!