zookeeperサーバJavaコードとテストコマンド
9943 ワード
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"+"
"+"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 += "/";
String str = keys.substring(oldpos + 1);
ppath += str;
break;
}
ppath += "/";
String str = keys.substring(oldpos + 1, pos);
ppath += str;
oldpos = pos;
}
Stat stat = new Stat();
try {
System.out.println("asfsa:" + 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 =
// "192.168.1.88:2181,192.168.1.88:2182,192.168.1.88:2183";
String hostports = "127.0.0.1:2181";
Conf.Instance().Init(hostports, 1000);
// String str =
// Conf.Instance().Get("conf.logicpoint.subscriberserverip");
// str = Conf.Instance().Get("conf.logicpoint.subscriberserverport");
// 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 "test"
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 "abc"
Created /zkk
ls /zkk
[]
get /zkk
"abc"
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