博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop分布式 之Zookeeper集群安装
阅读量:4094 次
发布时间:2019-05-25

本文共 2662 字,大约阅读时间需要 8 分钟。

ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。

zookeeper图示说明

zookeeper集群部署环境

  • ubuntu-16.04.1-server * 3(做3主机的集群)
  • 主机名:hadoopm、hadoop_s1、hadoop_s2
  • 分布式:Hadoop2.7 集群
  • zookeeper安装包:zookeeper-3.4.5.tar.gz
    Zookeeper集群的配置需要奇数台机器,一个为leader,其他为follower,这里选择最小的3台机器作为集群。

ZooKeeper Standalone模式

  • 从Apache网站上(zookeeper.apache.org)下载ZooKeeper软件包
  • 解压安装包到指定位置:tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/。
    我解压在/usr/local/目录下,jdk、Hadoop均安装在此目录,方便管理。
  • 修改配置内容:
    将zookeeper-3.4.5/conf目录下面的 zoo_sample.cfg复制一份改名为zoo.cfg
    cp zoo_sample.cfg zoo.cfg
# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=5# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=2# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=/root/zookeeper/data# the port at which the clients will connectclientPort=2181
  • 启动ZooKeeper单节点服务器进程,查看是否正常

    在Zookeeper目录下的bin文件加下,存放着各种操作命令,如下:
    这里写图片描述
    其中.sh均为linux系统下的命令,.cmd为windows系统下命令,zkCli.sh是启动zookeeper客户端命令。
    启动:
    cd /zookeeper-3.4.5/bin
    ./zkServer.sh start

  • 使用jps查看进程,会发现多出来一条QuorumPeerMain进程。

ZooKeeper Distributed模式

在有了单节点的zookeeper后,配置zookeeper分布式只需再次基础上做出修改即好。
  • 增加ZooKeeper配置文件
    在conf/zoo.cfg中增加配置信息:
server.1=hadoopm:2888:3888    server.2=hadoop_s1:2888:3888    server.3=hadoop_s2:2888:3888

server后面的数字即为各个zookeeper的编号,在后面需要为zookeeper设置编号。

  • 远程复制分发安装文件
    在zookeeper存储目录下(/usr/local/),将配置好的文件zookeeper-3.4.5通过scp命令发送到集群的其他主机:
scp -r zookeeper-3.4.5/ root@hadoop_s1:/usr/localscp -r zookeeper-3.4.5/ root@hadoop_s2:/usr/local
  • 设置myid
    在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X即为此数字。
root@hadoopm:echo "1" > /root/zookeeper/data/myidroot@hadoop_s1:echo "2" > /root/zookeeper/data/myidroot@hadoop_s2:echo "3" > /root/zookeeper/data/myid
  • 启动ZooKeeper集群
    依次在各个节点启动Zookeeper,然后可以用./zkServer.sh status来查看状态
root@hadoopm:/usr/local/zookeeper-3.4.5/bin# ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfgMode: followerroot@hadoop_s1:/usr/local/zookeeper-3.4.5/bin# ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfgMode: leaderroot@hadoop_s2:/usr/local/zookeeper-3.4.5/bin# ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfgMode: follower

至此,Zookeeper集群安装完毕,可以为以后的Hbase集群等工作打下基础。

参考:

你可能感兴趣的文章
CSS实例:Tab选项卡效果
查看>>
前端设计之特效表单
查看>>
前端设计之CSS布局:上中下三栏自适应高度CSS布局
查看>>
Java的时间操作玩法实例若干
查看>>
JavaScript:时间日期格式验证大全
查看>>
pinyin4j:拼音与汉字的转换实例
查看>>
XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
查看>>
时间日期:获取两个日期相差几天
查看>>
责任链模式 Chain of Responsibility
查看>>
高并发与大数据解决方案概述
查看>>
解决SimpleDateFormat线程安全问题NumberFormatException: multiple points
查看>>
MySQL数据库存储引擎简介
查看>>
处理Maven本地仓库.lastUpdated文件
查看>>
Kafka | 请求是怎么被处理的?
查看>>
Java并发编程1-线程池
查看>>
CentOS7,玩转samba服务,基于身份验证的共享
查看>>
计算机网络-网络协议模型
查看>>
计算机网络-OSI各层概述
查看>>
Java--String/StringBuffer/StringBuilder区别
查看>>
mySQL--深入理解事务隔离级别
查看>>