Hbase 之zookeeper

来源:互联网 发布:mac系统远程桌面 编辑:程序博客网 时间:2024/05/19 19:31

推荐zookeeper 的入门:http://sishuok.com/forum/blogPost/list/5450.html

接下来讲一下hbase怎么应用hbase

先看了zookeeper和hbase结合的架构

ps:uml 用的不熟悉,而且很卡,只画了个大概,process的参数是:WatchedEvent

当hbase有变化的时候process就会获取到变动事件,变动事件主要有以下几类:

None    If event type is NONE, this is a connection status change

NodeCreated

NodeDeleted

NodeDataChanged

NodeChildrenChanged

然后根据不同的事件循环处理监听、条用各自继承中的函数。例如:

 case NodeCreated: {        for(ZooKeeperListener listener : listeners) {          listener.nodeCreated(event.getPath());  //getPath   path full path of the new node        }        break;      }

实现ZookeeperListener的到底有哪些子类呢


每一个都是干什么的呢、都有什么用呢 。 以后再补充。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。





上面说了对于hbase对于zookeeper的事件的监控处理,接下来是什么时候对节点进行更新操作:


有前面RegionServer启动讲解的文章我们知道zookeeper初始化实在HregionServer启动的时候。 附:HregionServer run方法:Do pre-registration initializations; zookeeper, lease threads,当然这个不一定在这里初始化也可以在hmaster初始化的时候启动。

初始化ZK时创建下面这些节点(参见ZookeeperWatche类中createBaseZNodes方法)

      ZKUtil.createAndFailSilent(this, baseZNode);  // 这个是最基本的 即 /hbase
      ZKUtil.createAndFailSilent(this, assignmentZNode);    对应unassigned节点,主要用于region事务和分配
      ZKUtil.createAndFailSilent(this, rsZNode);    对应rs,主要用于存储regionserver 包含临时znode
      ZKUtil.createAndFailSilent(this, drainingZNode);     TODO
      ZKUtil.createAndFailSilent(this, masterTableZNode);  Master对应的位置
      ZKUtil.createAndFailSilent(this, masterTableZNode92);   //主要对于0.92版本向后兼容,主要功能记录表disable enable 状态
      ZKUtil.createAndFailSilent(this, splitLogZNode);   //用于日志分隔
      ZKUtil.createAndFailSilent(this, backupMasterAddressesZNode);  //备用Hmaster

---------------------------上面是在regionserver初始化的时候创建的一些节点----------------------------

我们发现节点中还有一些比如 online-snapshot  hbaseid等节点

root-region-server  是在初始化CatalogTrace的时候注册的


-------------------以后慢慢补充---------------------------


0 0