设为首页 收藏本站
查看: 12303|回复: 0

[经验分享] ZooKeeper-3.4.6分布式安装指南

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-5-4 14:08:14 | 显示全部楼层 |阅读模式
目录
目录        1
1. 前言        1
2. 约定        1
3. 安装步骤        2
3.1. 配置/etc/hosts 2
3.2. 设置myid 2
3.3. 修改conf/zoo.cfg 2
4. 启动ZooKeeper集群 3
5. 安装验证        3
6. 基本命令        4
7. 结束语        5

1. 前言
介绍ZooKeeper-3.4.6版本的分布式安装,力求细致,提供精确的安装指导。本文的安装环境是64位的SuSE 10.1 Linux。
2. 约定
将ZooKeeper安装在/data/hadoop/zookeeper目录,其中/data/hadoop/zookeeper是指向/data/hadoop/zookeeper-3.4.6的软链接。
ZooKeeper的数据目录设置为/data/hadoop/zookeeper/data。

本文使用了3台机器部署ZooKeeper集群,IP和主机名对应关系如下:
IP
主机名
10.12.154.77
DEVNET-154-77
10.12.154.78
DEVNET-154-70
10.12.154.79
DEVNET-154-79
3. 安装步骤3.1. 配置/etc/hosts
将3台机器的IP和主机名映射关系,在3台机器上都配置一下,亦即在3台机器的/etc/hosts文件中,均增加以下内容(可以先配置好一台,然后通过scp等命令复制到其它机器上):
10.12.154.77    DEVNET-154-77
10.12.154.78    DEVNET-154-70
10.12.154.79    DEVNET-154-79
3.2. 设置myid
在dataDir指定的数据目录(/data/hadoop/zookeeper/data)下,创建文件myid,文件内容为一个正整数值,用来唯一标识当前机器,因此不同机器的数值不能相同,建议从1开始递增标识,以方便记忆和管理。本文约定如下:
IP
标识数值
10.12.154.77
1
10.12.154.78
2
10.12.154.79
3

可以使用echo命令直接写进去,如:
echo 1 > myid或echo 1 > /data/hadoop/zookeeper/data/myid
3.3. 修改conf/zoo.cfg
按下述内容,修改ZooKeeper配置文件(3台机器都需要,可以先配置好一台,然后通过scp等命令复制到其它机器上):
tickTime=2000
dataDir=/data/hadoop/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=DEVNET-154-77:2888:3888
server.2=DEVNET-154-78:2888:3888
server.3=DEVNET-154-79:2888:3888

以上内容的配置,参照了ZooKeeper的官方文档:zookeeperStarted.html。server.X用来配置ZooKeeper集群中的各节点,并建议X的值和myid保持一致。
端口2181用于监听客户端的连接,端口2888用于Leader监听Follower的连接,而3888则用于Leader选举。
4. 启动ZooKeeper集群
bin目录下的脚本zkServer.sh用来启动ZooKeeper集群,但需要带一个start参数,如:
cd /data/hadoop/zookeeper/bin&&./zkServer.sh start

由于启动时,每个节点都会试图去连接其它节点,因此先启动的刚开始会连接不上其它的,导致日志中会包含错误信息,在未全启动之前,这个属正常现象。
5. 安装验证
脚本zkServer.sh不但可以用来启动ZooKeeper,还可以用来查看状态。使用方式为带一个status参数,如:
./zkServer.sh status

如遇到以下错误,请稍安勿躁,过会再试,可能是因为还未完全起来:
[hadoop@DEVNET-154-77 ~/zookeeper/bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /data/hadoop/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

集群成功启动后,将有且只会有一个成为leader,其它是follower:
[hadoop@DEVNET-154-79 ~/zookeeper/bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /data/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: leader

[hadoop@DEVNET-154-70 ~/zookeeper/bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /data/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: follower

[hadoop@DEVNET-154-77 ~/zookeeper/bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /data/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: follower
6. 基本命令
进入ZooKeeper的bin目录,执行zkCli.sh进入ZooKeeper的命令行操作界面。
./zkCli.sh -server 10.12.154.78:2181

参数“-server”中只含一个“-”,用以指定被连接的ZooKeeper节点,可以为Leader,也可以为Follower,“10.12.154.78”为Leader或Follower的IP或主机名,“2181”为ZooKeerp提供的客户端服务端口。

进入ZooKeeper命令行操作界面后,输入help然后回车,可以看到ZooKeeper支持的命令列表:
[zk: DEVNET-154-79:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
        stat path [watch]
        set path data [version]
        ls path [watch]
        delquota [-n|-b] path
        ls2 path [watch]
        setAcl path acl
        setquota -n|-b val path
        history
        redo cmdno
        printwatches on|off
        delete path [version]
        sync path
        listquota path
        rmr path
        get path [watch]
        create [-s] [-e] path data acl
        addauth scheme auth
        quit
        getAcl path
        close
        connect host:port

“ls”有点像HDFS中的“ls”,随便测试下:
[zk: DEVNET-154-79:2181(CONNECTED) 1] ls /
[zookeeper, hbase]

再测试下:
[zk: DEVNET-154-79:2181(CONNECTED) 2] ls /hbase
[replication, meta-region-server, rs, splitWAL, backup-masters, table-lock, region-in-transition, online-snapshot, master, running, recovering-regions, draining, namespace, hbaseid, table]

再测试一下:
[zk: DEVNET-154-79:2181(CONNECTED) 4] ls /hbase/backup-masters
[VM-40-171-sles10-64,60000,1398162436871]

上面可以看到有HBase,是因为基于它部署了一套HBase,若未基于它安装HBase,则不会有这个条目。
7. 结束语
至此,ZooKeeper分布式安装大告成功!更多细节,请浏览官方文档:http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html


下载pdf版:
http://yunpan.cn/QisTeciaWdCdz (提取码:1766)


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-18609-1-1.html 上篇帖子: ZooKeeper做独立服务器运行(下) 下篇帖子: 一个同步zookeeper节点的python脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表