HBase源码之HRegionServer

HRegionServer是Hbase中提供数据存取服务的核心部件。

1、由如下线程提供支撑:

1)LogRoller:日志切换线程,周期性的检查HLog是否需要切换,需要的话进行切换;

2)Flusher:数据缓存刷新线程,缓存到一定程度写入到磁盘;

3)CompactSplitThread:数据压缩拆分线程;

4)Worker:工作线程,执行关闭RegionServer、开启Region、关闭Region等操作;

5)LeaseMonitor:租约线程;

6)提供信息查询的一组web服务线程;

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

8)自身主线程:负责检查租约、发送报告到Master、获取指令、执行指令;

 

2、提供的RPC服务HRegionInterface如下:

1)获取RegionInfo;

  public HRegionInfo getRegionInfo(final Text regionName)
  throws NotServingRegionException;

2)获取指定Region、行、列对应的值;

  public byte [] get(final Text regionName, final Text row, final Text column)
  throws IOException;

3)获取指定Region、行、列、版本号对应的值;

  public byte [][] get(final Text regionName, final Text row,
    final Text column, final int numVersions)
  throws IOException;

4)获取指定Region、行、列、版本号、时间戳对应的值;

  public byte [][] get(final Text regionName, final Text row,
      final Text column, final long timestamp, final int numVersions)
  throws IOException;

5)获取指定Region、行的行信息;

  public HbaseMapWritable getRow(final Text regionName, final Text row)
  throws IOException;

6)获取指定Region、行、时间戳的行信息;

  public HbaseMapWritable getRow(final Text regionName, final Text row, final long ts)
  throws IOException;

7)获取指定Region,匹配某行的所有行信息;

  public HbaseMapWritable getClosestRowBefore(final Text regionName, final Text row)
  throws IOException;

8)对指定Region,批量更新数据;

  public void batchUpdate(Text regionName, long timestamp, BatchUpdate b)
  throws IOException;

9)删除指定Region、行、列,晚于指定时间戳的所有数据;

  public void deleteAll(Text regionName, Text row, Text column, long timestamp)
  throws IOException;

10)删除指定Region、行,晚于指定时间戳的所有数据;

  public void deleteAll(Text regionName, Text row, long timestamp)
  throws IOException;

11)删除指定Region、行、列族,早于指定时间戳的所有数据;

  public void deleteFamily(Text regionName, Text row, Text family, 
    long timestamp)
  throws IOException;

12)打开一个指定Region、列、开始行,早于指定时间戳,制定行过滤器的远端数据扫描器;

  public long openScanner(Text regionName, Text[] columns, Text startRow,
      long timestamp, RowFilterInterface filter)
  throws IOException;

13)获取指定scannerId的下一个值;

public HbaseMapWritable next(long scannerId) throws IOException;

14)关闭一个指定scannerId的远端数据扫描器;

public void close(long scannerId) throws IOException;














 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值