Hbase源码之HMaster

HMaster是Hbase中管理数据库元数据的服务器。

1、HMaster由下述的几组线程为其服务:

1)RootScanner:根节点HRegion的扫描线程;

2)MetaScanner:Meta节点HRegion的扫描线程;

3)LeaseMonitor:HMaster与外部客户交互时,会用到一些资源,当外部客户没有发送心跳信息时,会需要释放这些资源,Leases线程用来处理这个任务;

4)提供Master信息的一组web服务线程;

5)提供两组RPC服务(HMasterInterface、HMasterRegionInterface)的一组线程,包括1个Responder、1个Listener、默认10个Handler;

6)HMaster自身主线程:循环从delayedToDoQueue、toDoQueue两个队列中获取操作,并处理;

 

2、实现了两组rpc服务(协议),其中HMasterInterface如下:

1)判断Master是否可用;

public boolean isMasterRunning();

2)创建一个表;

public void createTable(HTableDescriptor desc) throws IOException;

3)删除一个表;

public void deleteTable(Text tableName) throws IOException;

4)将一个列加到一个表中;

public void addColumn(Text tableName, HColumnDescriptor column) throws IOException;

5)修改表中的某个列;

  public void modifyColumn(Text tableName, Text columnName, 
    HColumnDescriptor descriptor) 
  throws IOException;

6)删除列;

public void deleteColumn(Text tableName, Text columnName) throws IOException;

7)激活一个表;

public void enableTable(Text tableName) throws IOException;

8)disable一个表;

public void disableTable(Text tableName) throws IOException;

9)关闭HBase集群;

public void shutdown() throws IOException;

10)得到Root节点Region路径;

public HServerAddress findRootRegion();

 

HMasterRegionInterface如下:

1)HRegionServer初次启动时,进行注册;

public HbaseMapWritable regionServerStartup(HServerInfo info) throws IOException;

2)更新租约,向Master报告RegionServer的行为,并领取新的指令;

  public HMsg[] regionServerReport(HServerInfo info, HMsg msgs[])
  throws IOException;












 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章