文档章节

【ZooKeeper】单机伪集群搭建(适用于mac)

端木轩
 端木轩
发布于 2017/07/26 09:35
字数 868
阅读 9
收藏 0

1.配置

.zookeeper下载地址:http://apache.mirrors.lucidnetworks.net/zookeeper/

可以选择需要的版本,我下载的是zookeeper-3.4.6.tar.gz,解压得到文件夹zookeeper-3.4.3

由于手头机器不足,所以在一台机器上部署了3个server,如果你手头也比较紧,也可以这么做。

在主文件夹下建立一个zookeeper文件夹,在zookeeper文件夹里建立三个文件夹server1,server2,server3,

然后每个文件夹里面解压一个zookeeper的下载包,并且还建了几个文件夹,总体结构如下,最后那个是下载过来压缩包的解压文件

data,dataLog,logs,zookeeper-3.4.3

那么首先进入data目录,创建一个myid的文件,里面写入一个数字,比如我这个是server1,那么就写一个1,server2对应myid文件就写入2,server3对应myid文件就写个3 然后进入zookeeper-3.4.3/conf目录,那么如果是刚下过来,会有3个文件,configuration.xml, log4j.properties,zoo_sample.cfg,这3个文件我们首先要做的就是在这个目录创建一个zoo.cfg的配置文件,当然你可以把zoo_sample.cfg文件改成zoo.cfg,打开zoo.cfg,文件内容如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/Users/zhaofeng/Documents/zookeeper-cluster/zoo2/data
dataLogDir=/Users/zhaofeng/Documents/zookeeper-cluster/zoo2/dataLog
# the port at which the clients will connect
clientPort=2181

在文件末尾添加如下内容:

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

需要注意的是clientPort这个端口如果你是在1台机器上部署多个server,那么每台机器都要不同的clientPort,比如我server1是2181,server2是2182,server3是2183,dataDir和dataLogDir也需要区分下。

最后几行唯一需要注意的地方就是 server.X 这个数字就是对应 data/myid中的数字。你在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg都配server.1,server.2,server.3就OK了。因为在同一台机器上,后面连着的2个端口3个server都不要一样,否则端口冲突,其中第一个端口用来集群成员的信息交换,第二个端口是在leader挂掉时专门用来进行选举leader所用。

2.启动ZooKeeper伪机群的所有服务器

分别进入三个服务器的zookeeper-3.4.3/bin目录下,启动服务 ./zkServer.sh start 启动完成后,查看服务器状态, ./zkServer.sh status

一般来说,需要注意的是:按照zoo.cfg里面配置的顺序启动应用。同时需要注意查看zookeeper.out文件,如果出现连不上其他的端口号,很正常的事情。

错误如下:

Cannot open channel to 3 at election address /127.0.0.1:3890
java.net.ConnectException: Connection refused (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:368)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:341)
	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:449)
	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:430)
	at java.lang.Thread.run(Thread.java:748)

等待所有的端口都启动完成后,就可以正常使用了。正常的标识是status返回的内容为

$ ./zkServer.sh status
JMX enabled by default
Using config: /Users/zhaofeng/Documents/zookeeper-cluster/zoo2/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader

3.接入客户端

进入任意一个服务器的zookeeper/bin目录下,启动一个客户端,接入服务。

./zkCli.sh –server localhost:2181

© 著作权归作者所有

共有 人打赏支持
端木轩
粉丝 3
博文 42
码字总数 46549
作品 0
杭州
高级程序员
私信 提问
ZooKeeper的伪分布式集群搭建以及真分布式集群搭建

zk集群的一些基本概念 zookeeper集群搭建: zk集群,主从节点,心跳机制(选举模式) 配置数据文件 myid 1/2/3 对应 server.1/2/3 通过 zkCli.sh -server [ip]:[port] 命令检测集群是否配置成...

ZeroOne01
04/24
0
0
Zookeeper完全分布式集群的搭建

Zookeeper完全分布式集群的搭建 一、集群模式 1、单机模式 在zoo.cfg中只配置一个server.id就是单机模式了。 这种模式下,如果当前主机宕机,那么所有依赖于当前zookeeper服务工作的其他服务...

星汉
04/27
0
0
Kafka 单机和分布式环境搭建与案例使用

Kafka 单机和分布式环境搭建与案例使用 目录(?)[+] 一、单机环境搭建 官方参考文章: http://kafka.apache.org/quickstart 1、下载和解压安装包 这里下载了zookeeper和kafaka两个安装包,下载...

yucaifu1989
04/19
0
0
zookeeper集群搭建设置

zookeeper 官网:http://zookeeper.apache.org/ 现在最新版本是 3.4.6 ,但是这个版本我没有运行起来,可能是那配置出现问题了,现在我用的是3.4.5 http://apache.fayea.com/apache-mirror/z...

dev_zh
2014/08/01
0
2
ZooKeeper学习第二期--ZooKeeper安装配置

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运...

卯金刀GG
2017/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7下Tomcat启动慢的原因及解决方案

CentOS7下Tomcat启动慢的原因及解决方案 现象   在一次CentOS 7系统中安装Tomcat,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的。Tocmat的S...

linjin200
16分钟前
1
0
表格单元格td设置宽度无效的解决办法

<!--如果这样设置无效,--> <td width="120">123456789000000000000</td><!--那么套个div再设置宽度就有效了。--> <td><div style="width: 60px;overflow: hidden;text-overflow: e......

SummerGao
16分钟前
1
0
06.Beetl标签函数include ---《Beetl视频课程》

本期视频实现了评论列表分页; 内容简介:使用了标签函数include完成分页抽取 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598 作者:GK 标签函数 includ...

Gavin-King
20分钟前
1
0
Valid Anagram(leetcode242)

Given two strings s and t , write a function to determine if t is an anagram of s. Example 1: Input: s = "anagram", t = "nagaram"Output: true Example 2: Input: s = "rat", t = ......

woshixin
22分钟前
1
0
Parameter 'loginname' not found. Available parameters are [arg1, arg0, param

原来是这样写的 @Select("select * from user where login_name=#{loginName} and password=#{password}") User findWithLoginnameAndPassword(int loginName,String password); 一直报找不到......

kuchawyz
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部