开发者学堂课程【2020版大数据实战项目之 DMP 广告系统(第二阶段): CDH 搭建_ Zookeeper(1)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/677/detail/11769
CDH 搭建_ Zookeeper(1)
内容介绍:
一、安装 Zookeeper
二、配置 Zookeeper
三、在所有节点启动 Zookeeper
接下来安装 Zookeeper ,因为 Hadoop 依赖于 Zookeeper ,所以 Zookeeper 的安装步骤相对来说是比较简单的。进入笔记,第一步,需要进行集群规划,在所有的集群机器当中,所有节点全部都要有 Zookeeper 服务。第二步,进行 Zookeeper 安装。第一步是下载软件包,直接使用 yum install -y zookeeper zookeeper -server
就可以下载,这时会去读取 cloudera 上的源,源又指向 cdh 01上的 repo 仓库。直接从 repo 中进行下载,完成之后,创建 Zookeeper 对应的目录,并给予 Zookeeper 用户的权限,因为 cdh 的 Zookeeper 其他组件,全都是以 service 的形式运行的,它在运行时可以指定使用什么用户。所以在运行 Zookeeper 服务时会使用 zookeeper 用户运行。如果要赋予 zookeeper 程序权限,就应将创建的放置 Zookeeper 数据目录的权限给Zookeeper 的用户即可。接下来,配置 Zookeeper 。首先使用 init 去指定它的 myid ,然后设置其他几个节点的 myid 以及访问的 url ,这就是 Zookeeper 的配置。接下来,在所有节点启动 Zookeeper ,然后检查它的状态即可。
一、安装 Zookeeper
首先,安装 Zookeeper 的软件包,进入 mobaxterm 的 cdh 01的节点中,输入 yum install -y zookeeper zookeeper -server
,这时,两个服务已经一次性安装完成。因为是从本地的 Yum 源仓库进行安装,所以速度是相当快的。下载完成之后,两个程序 zookeeper 和 zookeeper -server 已经安装成功。这两个程序在安装时,只有第一次安装 Zookeeper 等待时间较长。这时是否使用本地的 Yum 仓库,都可能会依赖于外部的一些东西,尤其是 CentOS 6;所以建议大家第一次安装是处于联网状态的。
二、配置 Zookeeper
Zookeeper 安装完成后,即可进行相应的配置。现在需要把三台机器的 Zookeeper 组成一个集群,首先要指定 myid ,正常情况下应该先找到 Zookeeper 的 Data 目录,创建一个 myid 文件,但是现在不需要。目前可以直接使用 service zookeeper -server init -- myid=1
的简单命令。这需要在前面指定 init ,之后就可以自动创建一个叫做 myid 的文件,标注1。接下来,输入 vi /etc/zookeeper/conf
,在使用 cdh 进行安装时,配置文件基本上都在 etc 对应组件的 conf 目录下。如下图。
输入 cd /etc/ zookeeper/
,进入到 zookeeper 中可以看到有两个 conf 目录,一个是软链接,一个是真正的 conf 目录,修改哪个都是一样的。如下图。
比如,现在进入 conf 目录,可以看到一个 zoo.cfg 的文件,接下来 vi zoo.cfg
,如下图。
按 shift + g 直接到整个文件的最后,需要新增所有的服务的地址,一个访问地址,一个 RPC 地址,一个选举地址。比如 server .1=cdh 01:2888:3888。server .2=cdh 02:2888:3888。server .3=cdh 03:2888:3888。复制上述三个地址内容,其中 server 后面的数字1、2、3就是每一台机器的 myid ,这两个一定不能写错。接下来可以启动 zookeeper ,使用 service zookeeper -server start 的命令进行相应的启动。启动的方式与以往有一点区别,以往是使用 nohap 进行Zookeeper 的启动,但是现在可以直接启动 Zookeeper ,非常方便。等待启动状态时,可以输入 zookeeper-server status
的命令,即可查看当前的运行状态。如下图。
如果状态不可以,就需要查看它的日志。首先,进入一个叫做 /var/log/ 的日志目录,进入后发现有一个 zookeeper 的目录,如下图。
接着往下继续进入 Zookeeper 目录。也发现配置文件在 /etc/ zookeeper/conf 下。日志在 /var/log/zookeeper 下,所以它都是这样去组织的。大家可以查看 zookeeper.log 文件,看看里面的内容,输入 tail -100f zookeeper.log
,动态的展示100行。这时发现它只是连接不上,属于正常现象。如下图。
因为这几台机器还没有启动 Zookeeper ,所以这不是一个特别严重的问题。接下来进入 Zookeeper 02当中,这个地方已经安装完成, cdh 03正在安装,所以先配置 cdh 02。第一步 service zookeeper -server init -- myid=2
,在指定之后,可以直接复制刚才内容,输入 vi /etc/zookeeper/conf/zoo.cfg
,按 o 另起一行进行拷贝,完成之后就可以进行保存,直接退出。这时就可以启动Zookeeper ,输入 service zookeeper -server start
,在启动之后,因为还有一个节点没有启动,所以它的状态是不对的。有两个节点启动,它就能进行希望的选举。因为 Zookeeper 一般是单数,所以要有一个超过半数的概念,接下来进入到 Zookeeper 的 cdh 03中,大家会发现 glibc 正在下载。如下图
此时, cdh 03的 Zookeeper 已经成功安装,按照之前的步骤 cd回到目录,输入 clear 清空。
三、在所有节点启动 Zookeeper
第一步, service zookeeper -server init -- myid=3
,指定完成之后,复制 server 的内容,输入 vi /etc/zookeeper/conf/zoo.cfg
,这时按 shift + g 到最后一行。另起一行,将内容粘贴,是 server 1、2、3, cdh 1、2、3的路径,即 url 的定义。接下来,就可以使用 service zookeeper -server start 进行启动,完成之后,输入 zookeeper-server status
查看 zookeeper 的状态。可以看到 follower 。如下图。
看 cdh 01也是 follower 。 cdh 02是 leader ,如下图。
Cdh 03是 follower 。这时选举结束, Zookeeper 已经启动,大家也可以通过 Zookeeper 的4次命令来进行相应的 Zookeeper 整体上的查看,即可以使用4次命令去查看 Zookeeper 命令是否正在启动。使用4个命令查看的步骤是 echo mntr , mntr 是其中的一个四次命令可以查看当前 Zookeeper 的集群状态,之后使用 nc localhost 发给2181 端口,下图就是四次命令。
即使用 nc 把 tcp 包发给2181端口,就会响应对应的内容。如下图。
但是 nc 的命令需要单独进行安装,输入 yum install -y nc
安装 nc 包。执行刚才的四字命令,查看 Zookeeper 的集群状态,也就是直接发送 tcp 包。这时,大家可以看到 Zookeeper 的版本3.4.5,是 cdh 5.16的版本。如下图。
可以看到 znode 有4个,都知道 Zookeeper 是通过 znode 提供集群内的分布式协调服务。 znode 既可以是目录,又可以是保存数据的节点。往下可以看到显示的 watch 有几个,当前服务的状态是什么?如下图。
此时就可以看到整体的集群环境。当然除了这个4次命令以外,还有很多其他的4次命令;4次命令就是查看 Zookeeper 的一些管理命令,比如,可以使用 echo stat | nc localhost 2181
,用 nc 把 stat 发给 localhost 的2181。这时查看当前节点的状态,有4个节点,类型是 follower ,即跟随者,这就是 Zookeeper 。