ZooKeeper 3.4.5 分布式环境搭建详解
来源:互联网 发布:js首页下拉列 编辑:程序博客网 时间:2024/05/29 09:27
概述
上一篇中,我们说到了关于 Hadoop-2.2.0 集群的搭建。在这个系列中,Zookeeper 是必不可少的。本文会介绍 Zookeeper-3.4.5 的安装,后面会介绍 HBase-0.96 的安装。希望于你有益。
版权说明
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
本文作者:Q-WHai
发表日期: 2016年5月18日
本文链接:http://blog.csdn.net/lemon_tree12138/article/details/51445689
来源:CSDN
更多内容:分类 >> 大数据之 Hadoop
环境说明
- CentOS release 6.5 (Final) ( master )
- CentOS release 6.5 (Final) ( slave1 )
- CentOS release 6.5 (Final) ( slave2 )
- JDK-1.8.0_92 ( Oracle )
- Hadoop-2.2.0
- 虚拟机环境: VMware® Workstation 12 Pro
序号 虚拟机 IP hostname 1 172.16.2.117 master 2 172.16.2.115 slave1 3 172.16.2.116 slave2
Zookeeper 环境搭建
下载
http://zookeeper.apache.org/releases.html
进入 Apache 的官网下载一个合适的 Zookeeper 版本进行安装。
$ tar -zxvf zookeeper-3.4.5.tar.gz$ mv zookeeper-3.4.5 ~/zookeeper
配置环境变量
$ sudo vim /etc/profile
在文件的末尾处,添加如下信息
export ZOOKEEPER_HOME=/home/hadoop/zookeeperexport PATH=$PATH:${ZOOKEEPER_HOME}/bin
设置上面的配置立即生效
$ source /etc/profile
配置 zoo.cfg
配置 zoo.cfg 的路径是 ${ZOOKEEPER_HOME}/conf/zoo.cfg,不过一般情况下,这个文件是不存在的,需要从 zoo_sample.cfg 复制获得
$ cp zoo_smaple.cfg zoo.cfg$ vim zoo.cfg
配置文件中的内容如下
tickTime=2000initLimit=10syncLimit=5dataDir=/home/hadoop/data/zookeeperclientPort=2181server.1=master:2888:3888server.2=slave1:2888:3888server.3=slave2:2888:3888
配置防火墙
这里选择关闭防火墙
$ sudo service iptables stop$ sudo chkconfig iptables off # 设置防火墙不随系统启动,这一条你可以选择性添加
配置 myid
[hadoop@master ~]$ echo 1 > /home/hadoop/data/zookeeper/myid[hadoop@slave1 ~]$ echo 2 > /home/hadoop/data/zookeeper/myid[hadoop@slave2 ~]$ echo 3 > /home/hadoop/data/zookeeper/myid
注意这里 myid 的路径要与上面 zoo.cfg 中 dataDir 的路径一致。否则你的 Zookeeper 将无法启动。
另外上面的三条指令实际上是在三台虚拟机上完成的,这里需要注意,别傻乎乎地在同一台虚拟机上搞得起劲。
配置下发
$ scp -r zookeeper/ slave1:~/$ scp -r zookeeper/ slave2:~/
这里与 Hadoop 中的下发一样,将整个文件夹下发到你想要安放的目录。只是,这里需要在 scp 后面加上一个 -r,不然你就需要将 zookeeper 文件先压缩,再下发,再在各个子节点下再解压。麻烦死了~,还不如一个 -r 把控全局来得爽。
节点配置修改
这里主要有两个地方需要修改
1. myid
2. dataDir
myid 不用再说了,上面已经讲过了。这里的 dataDir 路径,你必须保证它存在,所以你要去创建它。
启动测试
$ zkServer.sh start
JMX enabled by defaultUsing config: /home/hadoop/zookeeper/bin/../conf/zoo.cfgStarting zookeeper ... STARTED
需要注意的是,要在每一台机器上都启动 zookeeper 才可以。
启动验证
$ jps
[hadoop@master ~]$ jps6888 QuorumPeerMain7353 Jps
如果这里存在 QuorumPeerMain 进程的话,就说明 Zookeeper 启动成功了。
功能验证
上面的启动验证只是说明了你的 Zookeeper 已经启动了,并不能说明,你的 Zookeeper 启动成功了。我们需要使用下面的指令查看 Zookeeper 是否启动成功。
$ zkServer.sh status
[hadoop@master ~]$ zkServer.sh statusJMX enabled by defaultUsing config: /home/hadoop/zookeeper/bin/../conf/zoo.cfgError contacting service. It is probably not running.
果然,这里的输出信息足以说明我们的 zookeeper 没有启动成功。百度了一通,完全无用!还有的一些完全是在胡说八道。
解决方案
在网上搜了很多的解决方案都不可行。也看了 zookeeper.out 信息,都没有什么发现。于是尝试着修改了 dataDir 的路径到 Zookeeper 的安装目录下(这是网上的教程中都用的目录),并重启计算机,问题解决。当然,我不能保证你按照我的步骤一定可以解决问题。只是把我解决此问题的过程分享给你而已,如果你未能解决它,可能你是另外的情况,但我希望你也可以不吝啬地把你的解决方案分享给大家。
验证结果
master
[hadoop@master zookeeper]$ zkServer.sh statusJMX enabled by defaultUsing config: /home/hadoop/zookeeper/bin/../conf/zoo.cfgMode: leader
slave1
[hadoop@slave1 conf]$ zkServer.sh statusJMX enabled by defaultUsing config: /home/hadoop/zookeeper/bin/../conf/zoo.cfgMode: follower
slave2
[hadoop@slave2 conf]$ zkServer.sh statusJMX enabled by defaultUsing config: /home/hadoop/zookeeper/bin/../conf/zoo.cfgMode: follower
测试 zkClient
zkCli.sh -server master:2181
Connecting to master:21812016-05-18 09:48:28,985 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT2016-05-18 09:48:28,990 [myid:] - INFO [main:Environment@100] - Client environment:host.name=master2016-05-18 09:48:28,990 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_92( ... 此处省略 N 条 ... )Welcome to ZooKeeper!2016-05-18 09:48:29,095 [myid:] - INFO [main-SendThread(master:2181):ClientCnxn$SendThread@966] - Opening socket connection to server master/172.16.2.117:2181. Will not attempt to authenticate using SASL (unknown error)JLine support is enabled2016-05-18 09:48:29,309 [myid:] - INFO [main-SendThread(master:2181):ClientCnxn$SendThread@849] - Socket connection established to master/172.16.2.117:2181, initiating session2016-05-18 09:48:29,420 [myid:] - INFO [main-SendThread(master:2181):ClientCnxn$SendThread@1207] - Session establishment complete on server master/172.16.2.117:2181, sessionid = 0x154c4bf7e640000, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null[zk: master:2181(CONNECTED) 0]
至此,我们的 Zookeeper 终于搭建完成了。以下是搭建完成之后在 Zookeeper 里面的玩耍:
[zk: master:2181(CONNECTED) 0] ls /[zookeeper][zk: master:2181(CONNECTED) 1] create /newfile helloCreated /newfile[zk: master:2181(CONNECTED) 2] ls /[zookeeper, newfile][zk: master:2181(CONNECTED) 3] get /newfilehellocZxid = 0x200000002ctime = Wed May 18 09:50:50 PDT 2016mZxid = 0x200000002mtime = Wed May 18 09:50:50 PDT 2016pZxid = 0x200000002cversion = 0dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 5numChildren = 0[zk: master:2181(CONNECTED) 4] set /newfile gootdayWATCHER::WatchedEvent state:SyncConnected type:NodeDataChanged path:/newfilecZxid = 0x200000002ctime = Wed May 18 09:50:50 PDT 2016mZxid = 0x200000003mtime = Wed May 18 09:53:55 PDT 2016pZxid = 0x200000002cversion = 0dataVersion = 1aclVersion = 0ephemeralOwner = 0x0dataLength = 7numChildren = 0[zk: master:2181(CONNECTED) 7] get /newfilegootdaycZxid = 0x200000002ctime = Wed May 18 09:50:50 PDT 2016mZxid = 0x200000003mtime = Wed May 18 09:53:55 PDT 2016pZxid = 0x200000002cversion = 0dataVersion = 1aclVersion = 0ephemeralOwner = 0x0dataLength = 7numChildren = 0[zk: master:2181(CONNECTED) 8] delete /newfile[zk: master:2181(CONNECTED) 9] ls /[zookeeper][zk: master:2181(CONNECTED) 10] quitQuitting...2016-05-18 09:56:03,079 [myid:] - INFO [main:ZooKeeper@684] - Session: 0x154c4bf7e640000 closed2016-05-18 09:56:03,080 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@509] - EventThread shut down
Ref
- http://www.iteblog.com/archives/904
- ZooKeeper 3.4.5 分布式环境搭建详解
- ZooKeeper 3.4.5 分布式环境搭建
- zookeeper环境搭建详解
- 分布式Zookeeper安装搭建详解
- Mac系统下,Hadoop 2.6.2 + ZooKeeper 3.4.6 + HBase 1.1.5 完全分布式环境搭建
- hadoop+hbase+zookeeper完全分布式环境搭建
- Hadoop+HBase+ZooKeeper分布式集群环境搭建
- zookeeper伪分布式集群环境搭建
- Zookeeper伪分布式集群环境搭建过程
- Hadoop+HBase+ZooKeeper分布式集群环境搭建
- hadoop+zookeeper+hbase分布式环境配置之zookeeper分布式环境搭建
- 分布式集群环境hadoop1.2.0、hbase0.94.4、zookeeper、elasticsearch搭建
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)
- 学习搭建Hadoop+HBase+ZooKeeper分布式集群环境
- ZooKeeper伪分布式环境搭建及命令行使用
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)
- 伪分布式集群环境hadoop、hbase、zookeeper搭建
- uva10401
- 算法设计☞棋盘覆盖
- 最近5年133个Java面试问题列表
- Eclipse联网在线更新软件,遇到无法更新的情况。
- css link和@import区别用法
- ZooKeeper 3.4.5 分布式环境搭建详解
- Spring事务传播机制和数据库隔离级别
- 有趣的Unicode、UTF-8编码起源
- Linux USB驱动框架分析
- 读了这篇文章,我对handler的消息处理机制有了进一步更透彻的了解。
- 最简单的基于FFmpeg的移动端例子:IOS 视频解码器
- 安卓横竖屏切换问题
- java web 项目启动开启 socket server 作者:Mchange
- Spark集群启动命令汇总