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

[经验分享] zookeeper服务器Java代码和测试命令

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-21 15:12:13 | 显示全部楼层 |阅读模式
package zktest;

import java.util.concurrent.CountDownLatch;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.ZooKeeper.States;
import org.apache.zookeeper.data.Stat;

public class Conf {
public static void waitUntilConnected(ZooKeeper zooKeeper,
CountDownLatch connectedLatch) {
if (States.CONNECTING == zooKeeper.getState()) {
try {
connectedLatch.await();
} catch (InterruptedException e) {
throw new IllegalStateException(e);
}
}
}

static class ConnectedWatcher implements Watcher {

private CountDownLatch connectedLatch;

ConnectedWatcher(CountDownLatch connectedLatch) {
this.connectedLatch = connectedLatch;
}

@Override
public void process(WatchedEvent event) {
if (event.getState() == KeeperState.SyncConnected) {
connectedLatch.countDown();
}
}
}

static public Conf Instance() {
if (static_ == null) {
static_ = new Conf();
}
return static_;
}

public boolean Init(String hostports, int times) {
try {
CountDownLatch connectedLatch = new CountDownLatch(1);
Watcher watcher = new ConnectedWatcher(connectedLatch);
zk = new ZooKeeper(hostports, times, watcher);
System.out.println("zk:" + zk.toString());
waitUntilConnected(zk, connectedLatch);
System.out.println("safsa");
System.out.println("safsa");

// zk.create("/home/hadoop/testRootPath", "testRootData".getBytes(),
// Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
// zk.create("/home/hadoop/testRootPath/testChildPathOne",
// "testChildDataOne".getBytes(), Ids.OPEN_ACL_UNSAFE,
// CreateMode.PERSISTENT);
// System.out.println(new
// String(zk.getData("/home/hadoop/testRootPath", false,
// null)));
// System.out.println(zk.getChildren("/home/hadoop/testRootPath",
// true));
// zk.setData("/home/hadoop/testRootPath/testChildPathOne",
// "modifyChildDataOne".getBytes(), -1);
// System.out.println("dir node state:[" +
// zk.exists("/home/hadoop/testRootPath", true)
// + "]");
// zk.create("/testRootPath/testChildPathTwo",
// "testChildDataTwo".getBytes(), Ids.OPEN_ACL_UNSAFE,
// CreateMode.PERSISTENT);
// System.out.println(new String(zk.getData(
// "/home/hadoop/testRootPath/testChildPathTwo", true, null)));
// // zk.delete("/home/hadoop/testRootPath/testChildPathTwo", -1);
// // zk.delete("/home/hadoop/testRootPath/testChildPathOne", -1);
// // zk.delete("/home/hadoop/testRootPath", -1);
// zk.close();
//
zk.create("/hu", ("hello1"+"\n"+"hello2").getBytes(),
Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//zk.create("/testRootPath", "testRootData".getBytes(),
//Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//// 创建一个子目录节点
//zk.create("/testRootPath/testChildPathOne",
//"testChildDataOne".getBytes(), Ids.OPEN_ACL_UNSAFE,
//CreateMode.PERSISTENT);
System.out.println(new String(zk.getData("/testRootPath", false,
null)));
// 取出子目录节点列表
System.out.println(zk.getChildren("/testRootPath", true));
// 修改子目录节点数据
zk.setData("/testRootPath/testChildPathOne",
"modifyChildDataOne".getBytes(), -1);
System.out.println("目录节点状态:[" + zk.exists("/testRootPath", true)
+ "]");
// 创建另外一个子目录节点
//zk.create("/testRootPath/testChildPathTwo",
//"testChildDataTwo".getBytes(), Ids.OPEN_ACL_UNSAFE,
//CreateMode.PERSISTENT);
System.out.println(new String(zk.getData(
"/testRootPath/testChildPathTwo", true, null)));
// 删除子目录节点
//zk.delete("/testRootPath/testChildPathTwo", -1);
//zk.delete("/testRootPath/testChildPathOne", -1);
//// 删除父目录节点
//zk.delete("/testRootPath", -1);
// 关闭连接
zk.close();
} catch (Exception e) {
System.out.println(e);
return false;
}
return true;
}

public String Get(String keys) {
String re = "";
String ppath = "/tmp/zookeeper";
int oldpos = -1;
int pos = 0;
while (true) {
pos = keys.indexOf(".", oldpos + 1);
if (pos < 0) {
ppath += &quot;/&quot;;
String str = keys.substring(oldpos + 1);
ppath += str;
break;
}
ppath += &quot;/&quot;;
String str = keys.substring(oldpos + 1, pos);
ppath += str;
oldpos = pos;
}
Stat stat = new Stat();
try {
System.out.println(&quot;asfsa:&quot; + ppath);
byte[] b = zk.getData(ppath, false, stat); // 获取节点的信息及存储的数据
re = new String(b);
} catch (Exception e) {
System.out.println(e);
}
return re;
}

private Conf() {

}

private ZooKeeper zk;
static private Conf static_;

public static void main(String args[]) {
// String hostports =
// &quot;192.168.1.88:2181,192.168.1.88:2182,192.168.1.88:2183&quot;;
String hostports = &quot;127.0.0.1:2181&quot;;
Conf.Instance().Init(hostports, 1000);

// String str =
// Conf.Instance().Get(&quot;conf.logicpoint.subscriberserverip&quot;);
// str = Conf.Instance().Get(&quot;conf.logicpoint.subscriberserverport&quot;);
// System.out.println(str);
while (true) {
try {
Thread.sleep(100);
} catch (Exception e) {

}
}

}
}
  命令:
  [hadoop@hutx bin]$ ./zookeeper-shell.sh  127.0.0.1:2181
Connecting to 127.0.0.1:2181
Welcome to ZooKeeper!
JLine support is disabled
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
ls /
[testRootPath, zookeeper]
create /zk &quot;test&quot;
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete path [version]
setquota -n|-b val path
ls /
[testRootPath, zookeeper]
create /zk
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete path [version]
setquota -n|-b val path
ls /zookeeper
[quota]
ls2 /        
[testRootPath, zookeeper]
cZxid = 0x0
ctime = Wed Dec 31 16:00:00 PST 1969
mZxid = 0x0
mtime = Wed Dec 31 16:00:00 PST 1969
pZxid = 0x1a
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
create /zk myData                                
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete path [version]
setquota -n|-b val path
create /zk my
Created /zk
ls /
[testRootPath, zk, zookeeper]
ls /zk
[]
ls /testRootPath
[testChildPathTwo, testChildPathOne]
create /zkk &quot;abc&quot;
Created /zkk
ls /zkk
[]
get /zkk
&quot;abc&quot;
cZxid = 0x27
ctime = Thu Jul 31 07:55:17 PDT 2014
mZxid = 0x27
mtime = Thu Jul 31 07:55:17 PDT 2014
pZxid = 0x27
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
get /zk
my
cZxid = 0x23
ctime = Thu Jul 31 07:53:15 PDT 2014
mZxid = 0x23
mtime = Thu Jul 31 07:53:15 PDT 2014
pZxid = 0x23
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
set /zk ccc
cZxid = 0x23
ctime = Thu Jul 31 07:53:15 PDT 2014
mZxid = 0x28
mtime = Thu Jul 31 08:01:00 PDT 2014
pZxid = 0x23
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
get /zk
ccc
cZxid = 0x23
ctime = Thu Jul 31 07:53:15 PDT 2014
mZxid = 0x28
mtime = Thu Jul 31 08:01:00 PDT 2014
pZxid = 0x23
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
ls  
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete path [version]
setquota -n|-b val path
ls /
[testRootPath, zk, zkk, zookeeper]
get /testRootPath
testRootData
cZxid = 0x1a
ctime = Thu Jul 31 07:20:57 PDT 2014
mZxid = 0x1a
mtime = Thu Jul 31 07:20:57 PDT 2014
pZxid = 0x1d
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 2
get /hu
hello1
hello2
cZxid = 0x2a
ctime = Thu Jul 31 08:07:35 PDT 2014
mZxid = 0x2a
mtime = Thu Jul 31 08:07:35 PDT 2014
pZxid = 0x2a
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 13
numChildren = 0

运维网声明 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-141901-1-1.html 上篇帖子: ZooKeeper中的锁机制 下篇帖子: zookeeper+activemq配置消息中间件集群 spring客户端连接
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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