学习Hadoop——Zookeeper安装细说

Zookeeper 安装方式有三种,分别为单机模式,伪集群模式,集群模式

1.单机模式:Zookeeper 只运行在一台服务器上,适合测试环境

2.伪集群模式:在一台物理机上运行多个Zookeeper 实例

3.集群模式:Zookeeper 运行在一个集群上,适合生产环境,这个计算机集群被称为一个“集群合体“

Zookeeper 通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它能够保证服务器继续,为什么一定要超过半数?这跟Zookeeper 的复制策略有关;Zookeeper 确保对Znode 树的每一个修改都会有被复制到集合体种超过半数的机器上。


单机模式

   配置准备

   和之前所说一样,将下载的.tar文件放在一个自己指定的目录下,解压该文件并复制到另一个自己指定的目录下,我自己指定目录是/usr/share

  使用root 用户修改/etc/profile 文件,添加ZOODEEPER_HOME环境变量,给PATH追加:$ZOOKEEPER_HOME/bin,如所示:

  退出并重新登录hadoop用户,验证修改失败。

  修改Zookeeper 的配置文件

   Zookeeper 服务器包含单个JAR文件中,安装此服务器·需要用户创建一个配置文档,并对其进行设置。在$ZOOKEERER_HOME/conf

   下复制一个zoo.cfg  配置文件:cp zoo_sample.cfg zoo.cfg


  使用编辑模式打开,包含如下内容:

  在这个文件中,tickTime 是基本事件单元,以毫秒为单位来指示心跳,会话过期时间为两倍的tickTime ,dataDir 指示存储中数据库快照的位置,如果不设置,更新事务日志将会被存储到默认位置。ClientPort :监听客户端连接的端口

为方便管理,需要修改dataDir 的值为ZOOKEEPER_HOME/snapshot/data.先创建目录:

madir -p ZOOKEEPER_HOME/snapshot/data.

再修改zoo.cfg 的dataDir 项目:

在使用单机模式时需要注意,这种配置方式下由于没有Zookeeper 副本,所以一旦Zookeeper 服务器出现故障,则整个Zookeeper 服务器将会停止


启动和关闭Zookeeper

1.启动Zookeeper 服务   zkServer.sh start

2.查看Zookeeper 服务状态   zkServer.sh status

3.关闭Zookeeper服务   zkServer.sh stop


伪集群模式

Zookeeper 不但可以在单机上运行,而且可以在单机模拟集群模式来运行,也就是说将不同的节点运行在同一台机器上。在前面说过Hadoop的操作和分布式模式下有着很大的不同,但是在伪分布式模式下对于Zokkeeper 操作没有本质区别。在实验中可以先使用少量数据在集群伪分布模式下进行测试,当测试可行时,同时大大提高了实验效率。伪分布式比较简便,成本也低,适合测试和学习。

使用集群伪分布模式时,需要在单台机器上运行多个Zookeeper 实例,因此就必须保证各个实例的参数不能产生冲突,具体如下:

1.clientPort:用来设置客户端连接Zookeeper 的端口号,当一台机器上部署多个Zookeeper 时,则每台机器就需要有不同的clientPort设置

2.dataDir和dataLogDir:在集群伪分布模式下,这两个需要区分下,将每个Zookeeper 实例的数据文件和日志文件存放,要求这两个文件有不同的路径

3.server.X 和myid: server .X 值就是对应的data/myid 中的数字值。3个Server 的myid 文件分别写入0,1,2,那么每个Server 中的zoo.cfg 都配置server.0,server.1,server.2


第一步:创建和修改Zookeeper 配置文件,这里所配置的集群伪分布模式是通过zoo1.cfg ,zoo2.cfg,zoo3.cfg 模拟三台机器的zookeeper集群

一次修改zoo2.cfg ,zoo3.cfg 配置文件

第二步:创建并配置dataDir 目录:

mkdir -p $ZOOPEEPER_HOME/snapshot/data_1

mkdir -p $ZOOPEEPER_HOME/snapshot/data_2

mkdir -p $ZOOPEEPER_HOME/snapshot/data_3

第三步:创建myid:

在上面创建的目录下,分别创建myid 

第四步:启动Zookeeper ,在集群伪分布模式下,由于要在一台机器上运行Zookeeper 实例,因此要使用三条独立的命令分别启动:

退出到最初目录下

zkServer.sh start zoo1.cfg      zkServer.sh start zoo2.cfg     zkServer.sh start zoo3.cfg    

使用jps 命令看到三个QuorumPeerMain进程在运行:(还是在最初的目录下执行)

第五步:停止Zookeeper 服务:也是分别执行

zkServer.sh stop zoo1.cfg 同上


集群模式

集群模式可以确保可靠的Zookeeper 服务,只要集群大多数的Zookeeper 服务启动了,那么Zookeeper 服务将总是可用的。另外,最好使用奇数机器,如果Zookeeper 拥有5台机器,系统就能够2台机器的故障了。

集群模式的安装和单机模式的安装类似,需要所有主机对JAVA环境进行设置,在每台机器上的conf/zoo.cfg 配置文件的参数设置相同,这里说明的是使用3个节点。

第一步:创建和修改hadoop1主机上的zookeeper 配置文件zoo.cfg

图中所看到的server.id=host:port:port 参数指示了不同的Zookeeper 服务器的自身标识,作为集群的成员的机制应该知道ensemble 中的其他机器信息,这些信息就是从这个参数中获取的。这一行配置中,第一个端口用来从Follower 机器连接到主Leader 机器端口,第二个端口是用来进行Leader 选举的端口。在本次实验中,每台机器使用了三个端口,客户端连接端口2181,Follower 连接Leader 端口2888,Leader 选举端口3888

注意,因为在集群模式下是在不同的主机上启动服务的,dataDir 和clientPort 可以相同

第二步:配置hadoop2和hadoop3 主机的环境变量,可以通过复制hadoop1主机的/etc/profile 文件配置到hadoop2和hadoop3;

scp /etc/profile root@hadoop2:/etc/profile  对于3也一样当然也可以挨个配置

第三步:通过复制hadoop1主机上的/usr/zookeeper-3.4.8(依照个人情况来) 目录来部署hadoop2 和hadoop3 主机的zookeeper 环境

scp -r /usr/zookeeper-3.4.8/hadoop@hadoop2:/usr/hadoop

第四步:创建myid,分别在三台机器上/usr/zookeeper-3.4.8/snapshot/data 目录下创建myid 文件

 与伪集群模式下创建的方式一样,不再赘述


在服务器的data(dataDir 参数所指的目录)目录下创建的myid 文件仅还有一行的内容,该值用于指定自身的id,例如,服务器1应该在myid 文件写入1,并且在这个id 值必须是emsemble 中唯一值,大小在0-255之间。

第五步:启动zookeeper 服务,分别在3台机器上分别启动zookeeper 服务:

 zooServer.sh start

注意:在运行完第一条指令之后,某些特定功能可能会出现异常,原因是由于Zookeeper 服务的每个实例都拥有全局配置信息,他们在启动时候会随时进行Leader 选举规则,此时,第一个启动的Zookeeper 需要和另外两个Zookeeper 实例进行通信。但如果另外两个Zookeeper 实例没有启动起来,就有可能产生异常信息。对于这样的信息,可以忽略。待其他zookeeper 实例安装启动后,相应的异常信息会自动消失。

第六步:查看Zookeeper 服务状态

分别在三个不同机器上  zkServer.sh status

第七步:停止服务

zkServer.sh stop

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值