zookeeper 是用来管理HMaster和RegionServer的, 和datanode复制没有关系
---------------
核心是watch, 用来监听其他服务器中节点的变化情况
节点znode, 可以分为永久节点和临时节点
永久节点存放需要同步管理的数据
临时节点作为心跳测试,和session的生命周期一致, 所有节点都能知道其他节点的状态。
还用来作为选举master,sequence最小的一个。
watch事件触发
为读操作设置watch: exists getChildren getData
watch种类分为: data watch 和 child watch
setData 触发data watch
create delete 触发 data watch 和 child watch
watch只能生效一次
如果要一直监控一个值得话,需要使用StatCallback
参考
http://www.cnblogs.com/zhangchaoyang/articles/2536178.html
http://www.blogjava.net/BucketLi/archive/2010/12/21/341268.html
多个server互相监控
http://blog.163.com/wm_at163/blog/static/132173490201232675256528/
---------------
核心是watch, 用来监听其他服务器中节点的变化情况
节点znode, 可以分为永久节点和临时节点
永久节点存放需要同步管理的数据
临时节点作为心跳测试,和session的生命周期一致, 所有节点都能知道其他节点的状态。
还用来作为选举master,sequence最小的一个。
watch事件触发
为读操作设置watch: exists getChildren getData
watch种类分为: data watch 和 child watch
setData 触发data watch
create delete 触发 data watch 和 child watch
watch只能生效一次
如果要一直监控一个值得话,需要使用StatCallback
package alwaysWatch;
import org.apache.zookeeper.AsyncCallback.StatCallback;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
public class Main implements Watcher, StatCallback {
String znode = "/e";
ZooKeeper zk;
public Main() throws Exception {
zk = new ZooKeeper("192.168.1.107:2181", 30000, this);
zk.exists(znode, true);
Thread.sleep(Long.MAX_VALUE);
}
public static void main(String[] args) throws Exception {
new Main();
}
@Override
public void process(WatchedEvent event) {
zk.exists(znode, true, this, null);
}
@Override
public void processResult(int rc, String path, Object ctx, Stat stat) {
try {
byte b[] = zk.getData(znode, false, null);
System.out.println(new String(b, "UTF-8"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
参考
http://www.cnblogs.com/zhangchaoyang/articles/2536178.html
http://www.blogjava.net/BucketLi/archive/2010/12/21/341268.html
多个server互相监控
http://blog.163.com/wm_at163/blog/static/132173490201232675256528/