安装单机habase报错,好像是zookeeper ha问题,单机还需要zookeeper ha么

Zookeeper的安装与配置(单机和伪分布式) - 博客频道 - CSDN.NET
coolcoffee168的专栏
分类:Zookeeper
云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群。服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信息如何推送到各个节点?并且保证信息的一致性和可靠性?
一. Zookeeper概念
既然要想使用Zookeeper,那么我们就要搞清楚它是什么,它是用来做什么的, 总体结构是怎样的?!
Zookeeper 是什么?
分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍 Zookeeper 的安装和配置。
Zookeeper 用来做什么的?
Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。下一部分会详细介绍一下ZooKeeper 典型的应用场景。
Zookeeper 总体结构是怎样的?
Zookeeper服务自身组成一个集群(2n+1个服务允许n个失效)。Zookeeper服务有两个角色,一个是leader,负责写服务和数据同步,剩下的是follower,提供读服务,leader失效后会在follower中重新选举新的leader。
Zookeeper逻辑图如下:
1. 客户端可以连接到每个server,每个server的数据完全相同。
2. 每个follower都和leader有连接,接受leader的数据更新操作。
3. Server记录事务日志和快照到持久存储。
4. 大多数server可用,整体服务就可用。
二. Zookeeper典型的应用场景
Zookeeper 从设计模式角度来看,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper 就将负责通知已经在 Zookeeper 上注册的那些观察者做出相应的反应,从而实现集群中类似 Master/Slave 管理模式,关于 Zookeeper 的详细架构等内部细节可以阅读 Zookeeper 的源码。
下面详细介绍这些典型的应用场景,也就是 Zookeeper 到底能帮我们解决那些问题?下面将给出答案。
统一命名服务(Name Service)
分布式应用中,通常需要有一套完整的命名规则,既能够产生唯一的名称又便于人识别和记住,通常情况下用树形的名称结构是一个理想的选择,树形的名称结构是一个有层次的目录结构,既对人友好又不会重复。说到这里你可能想到了 JNDI,没错 Zookeeper 的 Name Service 与 JNDI 能够完成的功能是差不多的,它们都是将有层次的目录结构关联到一定资源上,但是 Zookeeper 的 Name Service 更加是广泛意义上的关联,也许你并不需要将名称关联到特定资源上,你可能只需要一个不会重复名称,就像数据库中产生一个唯一的数字主键一样。
Name Service 已经是 Zookeeper 内置的功能,你只要调用 Zookeeper 的 API 就能实现。如调用 create 接口就可以很容易创建一个目录节点。
配置管理(Configuration Management)
配置的管理在分布式应用环境中很常见,例如同一个应用系统需要多台 PC Server 运行,但是它们运行的应用系统的某些配置项是相同的,如果要修改这些相同的配置项,那么就必须同时修改每台运行这个应用系统的 PC Server,这样非常麻烦而且容易出错。
像这样的配置信息完全可以交给 Zookeeper 来管理,将配置信息保存在 Zookeeper 的某个目录节点中,然后将所有需要修改的应用机器监控配置信息的状态,一旦配置信息发生变化,每台应用机器就会收到 Zookeeper 的通知,然后从 Zookeeper 获取新的配置信息应用到系统中。
配置管理结构图:
集群管理(Group Membership)
Zookeeper 能够很容易的实现集群管理的功能,如有多台 Server 组成一个服务集群,那么必须要一个“总管”知道当前集群中每台机器的服务状态,一旦有机器不能提供服务,集群中其它集群必须知道,从而做出调整重新分配服务策略。同样当增加集群的服务能力时,就会增加一台或多台 Server,同样也必须让“总管”知道。
Zookeeper 不仅能够帮你维护当前的集群中机器的服务状态,而且能够帮你选出一个“总管”,让这个总管来管理集群,这就是 Zookeeper 的另一个功能 Leader Election。
它们的实现方式都是在 Zookeeper 上创建一个 EPHEMERAL 类型的目录节点,然后每个 Server 在它们创建目录节点的父目录节点上调用 getChildren(String path, boolean watch) 方法并设置 watch 为 true,由于是 EPHEMERAL 目录节点,当创建它的Server 死去,这个目录节点也随之被删除,所以 Children 将会变化,这时getChildren上的 Watch 将会被调用,所以其它 Server 就知道已经有某台 Server 死去了。新增 Server 也是同样的原理。
Zookeeper 如何实现 Leader Election,也就是选出一个 Master Server。和前面的一样每台 Server 创建一个 EPHEMERAL 目录节点,不同的是它还是一个 SEQUENTIAL 目录节点,所以它是个 EPHEMERAL_SEQUENTIAL 目录节点。之所以它是EPHEMERAL_SEQUENTIAL 目录节点,是因为我们可以给每台 Server 编号,我们可以选择当前是最小编号的 Server 为 Master,假如这个最小编号的 Server 死去,由于是 EPHEMERAL 节点,死去的 Server 对应的节点也被删除,所以当前的节点列表中又出现一个最小编号的节点,我们就选择这个节点为当前 Master。这样就实现了动态选择 Master,避免了传统意义上单 Master 容易出现单点故障的问题。
Zookeeper 可以处理两种类型的队列:
1. 当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达,这种是
同步队列。
队列按照 FIFO 方式进行入队和出队操作,例如实现生产者和消费者模型。
同步队列用 Zookeeper 实现的实现思路如下:
创建一个父目录 /synchronizing,每个成员都监控标志(Set Watch)位目录 /synchronizing/start 是否存在,然后每个成员都加入这个队列,加入队列的方式就是创建 /synchronizing/member_i 的临时目录节点,然后每个成员获取 / synchronizing 目录的所有目录节点,也就是 member_i。判断 i 的值是否已经是成员的个数,如果小于成员个数等待 /synchronizing/start 的出现,如果已经相等就创建 /synchronizing/start。
**三. Zookeeper 的安装和配置**
安装可以分为两种方式:单机模式和集群模式。本文搭建的系统环境为windows。
单机模式的搭建是很简单的,从apache官网下载,我下载的zookeeper版本是3.4.8。下载完成后将其解压。
进入目录zookeeper-3.4.8\conf,复制zoo_sample.cfg并将其重命名为zoo.cfg。
在zoo.cfg中配置如下属性
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
启动zookeeper
双击zookeeper-3.4.8\bin\zkServer.cmd即可
下面对上述三个属性的意义进行讲解:
tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
关于单机模式的配置,可以参考
Zookeeper 不仅可以单机提供服务,同时也支持多机组成集群来提供服务。实际上 Zookeeper 还支持另外一种伪集群的方式,也就是可以在一台物理机上运行多个 Zookeeper 实例,下面将介绍集群模式的安装和配置。由于集群模式和伪集群模式配置差不多,所以本节以伪集群模式进行讲解。
假设我们要创建三个服务器
在本地创建三个目录分别是server1,server2, server3。代表三台服务器。
将下载下来的zookeeper-3.4.8分别复制到上述的三个目录中,并分别在三个目录下创建data和logs子文件夹。
Zookeeper 的配置文件主要在 conf 目录,包括zoo.cfg (zoo_sample.cfg)和log4j.properties。将server1中的\server1\zookeeper-3.4.8\conf\zoo_sample.cfg重命名为zoo.cfg,配置之后的内容如下(server2,server3也按照此配置):
# 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=D:/ZookeeperServer/server1/data
dataLogDir=D:/ZookeeperServer/server1/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
属性讲解:
tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
注意:在server2中应配置 clientPort=2182,与 server1 中的 clientPort=2181 不同,后续修改配置均需设置不同的 clientPort
在server1\data\中创建文件myid,打开该文件并在该文件中写上数字1。server2中myid的内容为数字2,server3中的myid为数字3。
配置之后的文件夹结构如下:
├── server1
├── data
├── logs
└── zookeeper-3.4.8
├── server2
├── data
├── logs
└── zookeeper-3.4.8
├── server3
├── data
├── logs
└── zookeeper-3.4.8
5..然后依次进入每个文件夹节点的zookeeper-3.4.8\bin目录中,启动zookeeper服务,双击zkServer.cmd
6. 如果一切顺利,Zookeeper 伪分布式模式安装成功,下面验证 Zookeeper 安装的正确性。
进入任意一个文件夹节点的zookeeper-3.4.8\bin包所在的目录,执行zkCli.cmd。
出现Welcome to ZooKeeper!,表示成功
Welcome to ZooKeeper!
2016-06-08 11:00:01,598 [myid:] - INFO
[main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@1032]
- Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate us
ing SASL (java.lang.SecurityException: 无法定位登录配置)
JLine support is enabled
2016-06-08 11:00:01,600 [myid:] - INFO
[main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@876]
- Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session
[zk: localhost:2181(CONNECTING) 0] 2016-06-08 11:00:01,722 [myid:] - INFO
[main-SendThread(127.0.0.
1:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server 127.0.0.1/127.0.0.1:2
181, sessionid = 0xd0000, negotiated timeout = 30000
WatchedEvent state:SyncConnected type:None path:null
好了,大家试试吧
coolcoffee168
排名:第12973名
(9)(1)(2)(2)(1)(1)(5)(1)(1)(3)(4)(0)(3)(1)(1)(1)(2)(3)(1)(1)(1)(0)(1)(1)(1)zookeeper之单机安装
系统:centos5.5
zookeeper:3.3.4
2.单机安装步骤:
1)下载zookeeper:wget&
&2)解压:tar -xzvf
&/usr/local/src/zookeeper-3.3.4.tar.gz
3)进入安装目录,zookeeper的配置文件在当前目录下的conf中,将zoo_sample.cfg
重命名为zoo.cfg,因为zookeeper启动时,默认加载的配置文件为zoo.cfg
4)单机模式下,zoo.cfg不需要修改什么,除非你想改变zookeeper的默认端口
5)进入到zookeeper-3.3.4/bin下,修改zkServer.sh文件如下:
ZOOKEEPER=/usr/local/zookeeper-3.3.4&&
PATH=$PATH:$ZOOKEEPER/bin&&
export&PATH&&
这样做的目的是防止在启动zookeeper时由于找不到zookeeper的当前根目录而产生一些错误。当然你也可以不加,然后尝试启动、停止、重新启动等命令看看。
这样配置后,我们就可以启动zookeeper了。
启动命令:进入到zookpeeper的bin目录下:sh zkServer.sh start
根据提示可以判断zookeeper是否启动成功。
也可以尝试运行 sh
zkCli.sh -server ip_address:port 看看是否能够连接到服务端,连接成功后的
模式如下:
zookeeper的单机安装就到此结束了。关于其具体命令的使用我将会陆续更新我的blog。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。【zookeeper】zookeeper单机和集群环境的搭建-爱编程
【zookeeper】zookeeper单机和集群环境的搭建
首先去官网下载zookeeper安装包,本文采用3.4.6stable版本
http://zookeeper.apache.org/doc/r3.4.6/
tar命令解压后的目录结构如下:
[root@com23 zookeeper-3.4.6]# ll
total 1612
drwxr-xr-x
4096 Feb 20
-rw-rw-r--
82446 Feb 20
2014 build.xml
-rw-rw-r--
80776 Feb 20
2014 CHANGES.txt
drwxr-xr-x
4096 Jan 22 11:39 conf
drwxr-xr-x 10
4096 Feb 20
2014 contrib
drwxr-xr-x
4096 Feb 20
2014 dist-maven
drwxr-xr-x
4096 Feb 20
-rw-rw-r--
1953 Feb 20
2014 ivysettings.xml
-rw-rw-r--
3375 Feb 20
2014 ivy.xml
drwxr-xr-x
4096 Feb 20
-rw-rw-r--
11358 Feb 20
2014 LICENSE.txt
-rw-rw-r--
170 Feb 20
2014 NOTICE.txt
-rw-rw-r--
1770 Feb 20
2014 README_packaging.txt
-rw-rw-r--
1585 Feb 20
2014 README.txt
drwxr-xr-x
4096 Feb 20
2014 recipes
drwxr-xr-x
4096 Feb 20
-rw-rw-r--
1 40305 Feb 20
2014 zookeeper-3.4.6.jar
-rw-rw-r--
836 Feb 20
2014 zookeeper-3.4.6.jar.asc
-rw-rw-r--
2014 zookeeper-3.4.6.jar.md5
-rw-rw-r--
2014 zookeeper-3.4.6.jar.sha1
-rw-r--r--
1 root root
46852 Jan 22 11:42 zookeeper.out我们进入conf目录下新建zoo.cfg配置文件,文件名随便都行,但是默认是这个文件名,为什么呢?
看zkEnv.sh就知道了
if [ &x$ZOOCFG& = &x& ]
ZOOCFG=&zoo.cfg&
fi文件内容如下:
#the basic time unit in milliseconds used by zookeeper,it is used to do heartbeats and the min session timeout will be twice the tickTime
tickTime=2000
#the location to store the in-memory database snapshots and ,unless specified otherwise,the transaction log of updates to database
dataDir=/home/zookeeper/zkData
#the port to listen for client connections
clientPort=2181至此,单机配置就结束了,下面可以启动了
bin/zkServer.sh start启动完成后,通过如下命令连接上去:
bin/zkCli.sh -server serverIp:2181当然你的客户端肯定要装个zk啦
[zk: localhost:2181(CONNECTED) 27] ll
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
delquota [-n|-b] path
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
ls2 path [watch]
listquota path
setAcl path acl
getAcl path
redo cmdno
addauth scheme auth
delete path [version]
setquota -n|-b val path至此,单机模式就结束了!
2、集群模式
修改配置文件如下:
#the basic time unit in milliseconds used by zookeeper,it is used to do heartbeats and the min session timeout will be twice the tickTime
tickTime=2000
#the location to store the in-memory database snapshots and ,unless specified otherwise,the transaction log of updates to database
dataDir=/home/zookeeper/zkData
#the port to listen for client connections
clientPort=2181
#timeouts zookeeper uses to limit the length of time the zookeeper servers in quorum have to connect to a leader
initLimit=5
#limits how far out of date a server can be from a leader
syncLimit=2
#With both of above timeouts, you specify the unit of time using tickTime. In this example, the timeout for initLimit is 5 ticks at 2000 milleseconds a tick, or 10 seconds.
server.1=192.168.11.176:
server.2=192.168.11.177:
server.3=192.168.11.178:The entries of the form&server.X&list
the servers that make up the ZooKeeper service. When the server starts up, it knows which server it is by looking for the file&myid&in
the data directory. That file has the contains the server number, in ASCII.
这句话的意思,server.X中的x是从dataDir路径下的myid文件来读取的,所以我们要创建相应的myid文件,内容分别是1,2,3
至此,集群的配置已经完成了!
下面到各个节点机器上去启动zookeeper
sh bin/zkServer.sh start可以去看zookeeper.out的启动日志输出
查看节点状态
[root@com23 zookeeper-3.4.6]# sh bin/zkServer.sh status
JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader[root@com22 zookeeper-3.4.6]# sh bin/zkServer.sh status
JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower[root@com21 zookeeper-3.4.6]# sh bin/zkServer.sh status
JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower三个节点,一个leader,两个follower
这里补充一点:zookeeper的集群必须得奇数个节点,因为zookeeper有个机制,当集群中大于半数的节点挂了,整个zookeeper将停止服务,如果说是偶数台的话,一半对一半,zookeeper很难判断,所以zookeeper的集群建议偶数台搭建。
下面另起一个客户端去连接zk集群:
[root@com20 zookeeper-3.4.6]# sh bin/zkCli.sh -server 192.168.11.178:2181
Connecting to 192.168.11.178:2181
14:41:08,947 [myid:] - INFO
[main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/ GMT
14:41:08,975 [myid:] - INFO
[main:Environment@100] - Client environment:host.name=com20.authentication
14:41:08,975 [myid:] - INFO
[main:Environment@100] - Client environment:java.version=1.7.0_60
14:41:08,989 [myid:] - INFO
[main:Environment@100] - Client environment:java.vendor=Oracle Corporation
14:41:08,990 [myid:] - INFO
[main:Environment@100] - Client environment:java.home=/usr/java/jdk1.7.0_67/jre
14:41:08,991 [myid:] - INFO
[main:Environment@100] - Client environment:java.class.path=/home/zookeeper/zookeeper-3.4.6/bin/../build/classes:/home/zookeeper/zookeeper-3.4.6/bin/../build/lib/*.jar:/home/zookeeper/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/zookeeper/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/home/zookeeper/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/home/zookeeper/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/home/zookeeper/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/home/zookeeper/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/home/zookeeper/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/home/zookeeper/zookeeper-3.4.6/bin/../conf:.:/usr/java/jdk1.7.0_67/lib:/usr/java/jdk1.7.0_67/lib/tools.jar:/usr/java/jdk1.7.0_67/lib/dt.jar:/usr/java/jdk1.7.0_67/jre/lib:/usr/java/jdk1.7.0_67/jre/lib/charsets.jar:/usr/java/jdk1.7.0_67/jre/lib/rt.jar
14:41:08,991 [myid:] - INFO
[main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
14:41:08,992 [myid:] - INFO
[main:Environment@100] - Client environment:java.io.tmpdir=/tmp
14:41:08,993 [myid:] - INFO
[main:Environment@100] - Client piler=&NA&
14:41:08,993 [myid:] - INFO
[main:Environment@100] - Client environment:os.name=Linux
14:41:08,994 [myid:] - INFO
[main:Environment@100] - Client environment:os.arch=amd64
14:41:08,995 [myid:] - INFO
[main:Environment@100] - Client environment:os.version=2.6.18-308.el5
14:41:08,995 [myid:] - INFO
[main:Environment@100] - Client environment:user.name=root
14:41:08,996 [myid:] - INFO
[main:Environment@100] - Client environment:user.home=/root
14:41:08,996 [myid:] - INFO
[main:Environment@100] - Client environment:user.dir=/home/zookeeper/zookeeper-3.4.6
14:41:09,000 [myid:] - INFO
[main:ZooKeeper@438] - Initiating client connection, connectString=192.168.11.178:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@8afbefd
Welcome to ZooKeeper!
14:41:09,187 [myid:] - INFO
[main-SendThread(192.168.11.178:2181):ClientCnxn$SendThread@975] - Opening socket connection to server 192.168.11.178/192.168.11.178:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
14:41:09,243 [myid:] - INFO
[main-SendThread(192.168.11.178:2181):ClientCnxn$SendThread@852] - Socket connection established to 192.168.11.178/192.168.11.178:2181, initiating session
[zk: 192.168.11.178:2181(CONNECTING) 0]
14:41:09,481 [myid:] - INFO
[main-SendThread(192.168.11.178:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server 192.168.11.178/192.168.11.178:2181, sessionid = 0x34b1057cbfa0000, negotiated timeout = 30000
WatchedEvent state:SyncConnected type:None path:null
[zk: 192.168.11.178:2181(CONNECTED) 0]
[zk: 192.168.11.178:2181(CONNECTED) 1] ls /
[zookeeper, zk_test]
[zk: 192.168.11.178:2181(CONNECTED) 2] get /zk_test
cZxid = 0x5
ctime = Thu Jan 22 13:52:58 CST 2015
mZxid = 0x5
mtime = Thu Jan 22 13:52:58 CST 2015
pZxid = 0x5
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
[zk: 192.168.11.178:2181(CONNECTED) 3] 如果你的客户端只是去连zk集群,只需要解压zk安装包即可,使用命令直接可以连接,无需任何配置!
如遇任何问题,建议大家去官网参考,官网的永远是权威!
http://zookeeper.apache.org/doc/r3.4.6/zookeeperStarted.html
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。1.1 Zookeeper单机安装_架构设计_ThinkSAAS
1.1 Zookeeper单机安装
1.1 Zookeeper单机安装
zookeeper 单机安装配置
  1、安装前准备
linux系统(此文环境为Centos6.5)
Zookeeper安装包,官网,演示版本zookeeper-3.4.7.tar.gz
  2、解压:tar -zxvf zookeeper-3.4.7.tar.gz
  3、修改配置文件
cd zookeeper-3.4.7/conf
cp zoo_sample.cfg zoo.cfg 复制模板配置文件为zoo.cfg
vim zoo.cfg 修改配置文件,常用配置参考
tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间
initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值
syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃
dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里
clientPort:服务的监听端口
maxClientCnxns:最大并发客户端数,用于防止DOS的,默认值是10,设置为0或不设置是不加限制
  4、服务启动
cd zookeeper-3.4.7/bin
./zkServer.sh start出现下图说明启动成功
    
  5、服务检查
lsof -i:2181 查看2181端口是否被已启动,也可在配置文件设置端口时查看,防止端口占用
     
ps -ef | grep zookeeper 查看服务运行情况
    
下节:1.2 zookeeper伪集群安装内容来源:
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信}

我要回帖

更多关于 zookeeper单机安装 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信