Hadoop完全分布式安装zookeeper

版权声明:每个人都是自己的上帝。如果你自己都放弃自己了,还有谁会救你?------《肖申克的救赎》本文为博主原创文章,欢迎转载(记得注明出处,拜托~)。 https://blog.csdn.net/hu_belif/article/details/83307980

D.1安装 ZooKeeper

D.1.1 下载 ZooKeeper

ZooKeeper 是 Apache 基金会的一个开源、分布式应用程序协调服务,是 Google 的 Chubby一个开源的实现。它是一个为分布式应用提供一致性服务的软件,提供的功能包括配置维护、域名服务、分布式同步、组服务等。它的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper 安装包可以在其官网的下载页面下载,下载地址为 http://zookeeper.apache.org/releases.html#download 。 为 加 快 下 载 速 度 可 以 选 择 中 国 境 内 的 镜 像 , 选 择 稳 定 版 本zookeeper.tar.gz 安装包。

D.1.2 解压并配置环境变量

下载后把安装包方放在目录/root 目录下,用下面的命令解压缩 ZooKeeper 安装包,并把解压后的目录移动到/usr/local目录下:

$cd 
$tar -zxvf zookeeper-3.4.8.tar.gz
$mv zookeeper-3.4.8 zookeeper    //修改名字
$ll /app/soft

为了方便运行 zkServer.sh 脚本,在集群中的节点中,需要将 ZooKeeper 的 bin 路径加入到
/etc/profile 中,设置如下内容(分发到各节点后,在各节点上做同样设置):

export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin //在$Path:后追加$ZOOKEEPER_HOME/bin:即可

设置完毕后使用如下命令使配置生效:

$source /etc/profile

D.1.3 修改 ZooKeeper 的配置文件

在 ZooKeeper 的根目录下建立 data 和 log 目录用于存放工作数据和日志文件:

$mkdir /usr/local/zookeeper/data/
$mkdir /usr/local/zookeeper/log/

在 ZooKeeper 配置目录下默认情况下,不存在 zoo.cfg 文件,需要复制一份,然后进行修改,
命令如下:

$cd /usr/local/zookeeper/conf/
$cp zoo_sample.cfg zoo.cfg
$sudo vi zoo.cfg

修改 zoo.cfg 配置文件内容(仅列出重要配置):

#用于存放 ZooKeeper 的数据和日志

dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log

//外部客户端连接端口号,在 Kafka 中将使用该端口号
clientPort=2181
//ZooKeeper 集群相关配置信息
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
配置中 server.A=B: C: D 含义如下:

  • A 为数字,表示这个是第几号服务器。
  • B 表示该服务器的 IP 地址。
  • C 表示该服务器与集群中的 Leader 服务器交换信息的端口。
  • D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出
  • 一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

注意:如果是伪集群的配置方式,由于 B 都是一样,所以不同的 ZooKeeper 实例通信端口号不
能一样,所以要给它们分配不同的端口号。

D.1.4 分发 ZooKeeper 到各节点

使用 scp 命令到 ZooKeeper 分发到 slave1 和 slave2 节点上:

$cd /usr/local/
$scp -r zookeeper spark@slave1:/app/soft
$scp -r zookeeper spark@slave2:/app/soft


在 dataDir 目录下创建一个 myid 文件,然后分别在 myid 文件中按照 zoo.cfg 文件的 server.A
中 A 的数值,在不同机器上的该文件中填写相应的值,如 master 节点该值为 1、 slave1 节点该
值为 2、 slave2 节点该值为 3。

$cd /usr/local/zookeeper/data
$vi myid

D.2 启动并验证

执行命令“zkServer.sh start”将会启动 ZooKeeper。在此大家需要注意的是,不同节点上的
ZooKeeper 需要单独启动。而执行命令“zkServer.sh stop”将会停止 ZooKeeper。用户可以使用
命令“JPS”查看 ZooKeeper 是否成功启动,或执行命令“zkServer.sh status”查看 ZooKeeper
集群状态:

$zkServer.sh start
$zkServer.sh status

图附录 D-1 为启动 Zookeeper 并查看状态的显示页面。


图 附录 D-1 启动 Zookeeper 并查看状态


当第一个节点启动 ZooKeeper 时由于集群的其他节点未启动 ZooKeeper,使用 zkServer.sh
status 命令查看当前状态时会提示错误。但是随着后续节点的 ZooKeeper 的陆续启动,使用 status
查看状态时会显示当前节点的状态,本次 master 作为了 follower。

猜你喜欢

转载自blog.csdn.net/hu_belif/article/details/83307980
今日推荐