ZooKeeper部署

  前面理论讨论的差不多了,今天开始安装部署一个ZooKeeper集群。

 

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的公钥分别复制给其他两个节点。

 

 

ZooKeeper部署

3、上传安装包并安装

3.1 上传安装包

(1)建议安装上传下载工具lrzsz工具,方便本地和虚拟机之间进行文件上传和下载。

安装命令:yum install lrzsz

安装完后

  • rz 命令进行本地文件的上传

  • sz 服务器文件下载到本地

(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 四字命令是指什么?

且看下回分解ZooKeeper部署

 

本想把zookeeper的操作在本次写完,发现篇幅会过于长,就分两次写吧。

 

 

ZooKeeper部署

通过上面部署过程可以看出,要想学好大数据、用好大数据,Linux的操作是必须的!!!

我这里有一份linux常用操作手册(按着操作一遍,你肯定能熟悉常用操作,应付大数据相关的操作基本没问题),想要该资料的同学,请 转发该篇文章到您的朋友圈(PS:不能屏蔽别人),然后把朋友圈截图发给我(请加我微信  "arno1649" ,备注“学点儿编程”),我发资料给您。

 

 

如果觉得这篇文章对您有帮助,欢迎关注公众号 “学点儿编程”,公众号不断推送干货文章!

ZooKeeper部署

 

上一篇:csapp-深入理解计算机系统学习记录


下一篇:String.format(String format, Object... args)方法详解