您的位置:首页 > 其它

Hbase源码之HMaster

2012-12-19 20:16 337 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: