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;












 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值