标签:会话 created 地址 实例 java tran yum 失败 build
ZooKeeper是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。
其中follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票。
而observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度。
通用二进制包安装:
# tar xf jdk-7u79-linux-x64.tar.gz -C /usr/local/
# ln -sv /usr/local/jdk1.7.0_79 /usr/local/java
"/usr/local/java" -> "/usr/local/jdk1.7.0_79"
# cat /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/java
export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# . /etc/profile.d/java.sh
# java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (rhel-2.5.5.4.el6-x86_64 u79-b14)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
yum 安装:
# yum install -y java-1.7.0-openjdk
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
# tar xf zookeeper-3.4.10.tar.gz -C /opt/
# cd /opt/
# chown -R root.root zookeeper-3.4.10/
# cd /opt/zookeeper-3.4.10/conf/
# cp zoo_sample.cfg zoo.cfg
# mkdir /data/zookeeper/log -p
# grep -v ‘^#‘ zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
dataLogDir=/data/zookeeper/log
clientPort=2181
# /opt/zookeeper-3.4.10/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
# /opt/zookeeper-3.4.10/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: standalone
# /opt/zookeeper-3.4.10/bin/zkCli.sh -server localhost:2181
Connecting to localhost:2181
......
[zk: localhost:2181(CONNECTED) 0]
配置前请将单实例的zookeeper给关闭。
# grep -v ‘^#‘ z1.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/z1/
clientPort=2181
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
# grep -v ‘^#‘ z2.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/z2/
clientPort=2182
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
# grep -v ‘^#‘ z3.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/z3/
clientPort=2183
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
# mkdir -p /data/zookeeper/z{1,2,3}
除了修改 zoo.cfg 配置文件,集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面就有一个数据就是 A 的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个 server。
# echo 1>/data/zookeeper/z1/myid
# echo 2>/data/zookeeper/z2/myid
# echo 3>/data/zookeeper/z3/myid
# ./zkServer.sh start z1.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/z1.cfg
Starting zookeeper ... STARTED
# ./zkServer.sh start z2.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/z2.cfg
Starting zookeeper ... STARTED
# ./zkServer.sh start z3.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/z3.cfg
Starting zookeeper ... STARTED
# ./zkServer.sh status z1.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/z1.cfg
Mode: follower
# ./zkServer.sh status z2.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/z2.cfg
Mode: leader
# ./zkServer.sh status z3.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/z3.cfg
Mode: follower
ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。 ZooKeeper 常用四字命令见下表 :
四字命令 | 功能描述 |
---|---|
conf | 输出相关服务配置的详细信息。 |
cons | 列出所有连接到服务器的客户端的完全的连接/会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息。 |
dump | 列出未经处理的会话和临时节点。 |
envi | 输出关于服务环境的详细信息(区别于 conf 命令)。 |
reqs | 列出未经处理的请求 |
ruok | 测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应。 |
stat | 输出关于性能和连接的客户端的列表。 |
wchs | 列出服务器 watch 的详细信息。 |
wchc | 通过 session 列出服务器 watch 的详细信息,它的输出是一个与watch 相关的会话的列表。 |
wchp | 通过路径列出服务器 watch 的详细信息。它输出一个与 session相关的路径。 |
使用举例
# echo conf |nc 192.168.197.61 2181
clientPort=2181
dataDir=/data/zookeeper/z1/version-2
dataLogDir=/data/zookeeper/z1/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=1
initLimit=10
syncLimit=5
electionAlg=3
electionPort=2223
quorumPort=2222
peerType=0
[zk: 192.168.197.61:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: 192.168.197.61:2181(CONNECTED) 1] create /zk myDate
Created /zk
[zk: 192.168.197.61:2181(CONNECTED) 2] ls /
[zk, zookeeper]
[zk: 192.168.197.61:2181(CONNECTED) 3] get /zk
myDate
cZxid = 0x300000002
ctime = Thu May 18 18:36:41 CST 2017
mZxid = 0x300000002
mtime = Thu May 18 18:36:41 CST 2017
pZxid = 0x300000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
[zk: 192.168.197.61:2181(CONNECTED) 4] set /zk yourDate
cZxid = 0x300000002
ctime = Thu May 18 18:36:41 CST 2017
mZxid = 0x300000003
mtime = Thu May 18 18:37:10 CST 2017
pZxid = 0x300000002
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
[zk: 192.168.197.61:2181(CONNECTED) 5] get /zk
yourDate
cZxid = 0x300000002
ctime = Thu May 18 18:36:41 CST 2017
mZxid = 0x300000003
mtime = Thu May 18 18:37:10 CST 2017
pZxid = 0x300000002
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
[zk: 192.168.197.61:2181(CONNECTED) 6] delete /zk
[zk: 192.168.197.61:2181(CONNECTED) 7] ls /
[zookeeper]
标签:会话 created 地址 实例 java tran yum 失败 build
原文地址:http://www.cnblogs.com/cuchadanfan/p/6874953.html