项目中使用了zookeeper管理hbase,昨天写了个小任务统计hbase里的数据,需要用zookeeper读取hbase的配置。
zookeeper的机制这一篇先不讲了,hadoop权威指南看到zookeeper再详细的讲。这里主要说一下如何用几行代码迅速的拿到zookeeper中的配置,进一步的是如何注册watcher。
首先是直接拿zookeeper数据
|
|
new ZooKeeper的第一个参数是hosts的地址列表,第二个是timeout时间,第三个是watcher,我们的程序不需要watcher,就传了null
之后需要getData时第一个参数是path,就是zookeeper里的path,第二个是是否watcher,第三个参数我不知道是啥意思。
然后说一下利用listener和watcher监控数据变化。
|
|
这个类继承了zookeeperListener,Listener有个私有变量watcher,start中他将watcher注册给自己,并且通过ZKUtil中的api获取数据。
该类重载了nodeCreated和nodeDataChanged,这样当node被创建和数据变化时会自动被调用,从而获得最新的数据。
传入的watcher这样初始化:
|
|
通过设置conf并初始化ZooKeeperWatcher即可
本文采用创作共用保留署名-非商业-禁止演绎4.0国际许可证,欢迎转载,但转载请注明来自http://thousandhu.github.io,并保持转载后文章内容的完整。本人保留所有版权相关权利。
本文链接:http://thousandhu.github.io/2015/11/11/java代码中调用zookeeper/