Java API
HBase采用的接口与Apache HBase保持一致,请参见http://hbase.apache.org/apidocs/index.html
新增或修改的接口
- HBase 0.98.3建议使用org.apache.hadoop.hbase.Cell作为KV数据对象,而不是HBase 0.94的org.apache.hadoop.hbase.KeyValue。
- HBase 0.98.3建议使用HConnection connection = HConnectionManager.createConnection(conf)来创建连接池,废弃HTablePool。
- 新的EndPoint接口,参见 http://hbase.apache.org/book/cp.html
- org.apache.hadoop.hbase.client.Scan中新增反向扫描方法设置isReversed()和setReversed(boolean reversed)。
- HBase 0.98到1.0的API变更,请参考: https://issues.apache.org/jira/browse/hbase-10602
- HBase 1.0 建议不要使用org.apache.hadoop.hbase.mapred,建议使用org.apache.hadoop.hbase.mapreduce。
- 版本详细的信息请参考: https://blogs.apache.org/hbase/entry/start_of_a_new_era
- 获取HBase replication metrics新增的API接口
表1 org.apache.hadoop.hbase.client.replication.ReplicationAdmin
| 方法 | 描述 |
|---|---|
| getSourceMetricsSummary(String id) | 参数:String 需要获取对端id的源指标汇总。 返回类型:Map<String, String> 返回:一个Map,其中键是RegionServer的名称,值是指定对端id的源集群指标的汇总。汇总指标是'sizeOfLogToReplicate'和'timeForLogToReplicate'。 |
| getSourceMetrics(String id) | 参数:String 需要获取对端id的源指标汇总。 返回类型:Map<String, String> 返回:一个Map,其中键是RegionServer的名称,值是指定对端id源集群的指标。 |
| getSinkMetrics() | 返回类型:Map<String, String> 返回:一个Map,其中键是RegionServer的名称,值是指定对端id源集群的sink指标。 |
| getPeerSinkMetrics(String id) | 参数:String 需要获取对端id的源指标汇总。 返回类型:Map<String, String> 返回:一个Map,其中键是RegionServer的名称,值是指定对端id源集群的sink指标。 |
说明:
所有方法返回一个Map,其中键是“RegionServer名称(IP/Host)”和string类型的值,包含了所有指标,其格式是'Metric Name'='Metric Value' [, 'Metric Name'= 'Metric Value']*
举例:SizeOfHFileRefsQueue=0, AgeOfLastShippedOp=0
表2 org.apache.hadoop.hbase.replication.ReplicationLoadSource
| 方法 | 描述 |
|---|---|
| getPeerID() | 返回类型:String 返回:对端集群的id |
| getAgeOfLastShippedOp() | 返回类型:long 返回:上次成功的replication请求持续的毫秒数 |
| getSizeOfLogQueue() | 返回类型:long 返回:队列中等待replication的Wals |
| getTimeStampOfLastShippedOp() | 返回类型:long 返回:上次成功的replication请求的时间戳 |
| getReplicationLag() | 返回类型:long 返回:当前时间和上次成功的replication请求的时间间隔 |
| getShippedOps() | 返回类型:long 返回:输送的数据ops总数 |
| getShippedBytes() | 返回类型:long 返回:输送的总的数据字节数 |
| getShippedBatches() | 返回类型:long 返回:输送的总的数据批数 |
| getLogReadInBytes() | 返回类型:long 返回:从wal日志读取的总字节数 |
| getLogEditsRead() | 返回类型:long 返回:从wal日志读取的总编辑数 |
| getSizeOfLogToReplicate() | 返回类型:long 返回:在队列中等待replicate的总wal日志大小 |
| getTimeForLogToReplicate() | 返回类型:long 返回:在队列中replicate wal日志需要花的秒数 |
| getShippedHFiles() | 返回类型:long 返回:输送的hfile总数 |
| getSizeOfHFileRefsQueue() | 返回类型:long 返回:等待replicate的hfile总数 |
| getLogEditsFiltered() | 返回类型:long 返回:过滤的wal编辑总数 |
| getFailedReplicationAttempts() | 返回类型:long 返回:在一次请求中不能复制数据的次数。 |
表3 org.apache.hadoop.hbase.replication.ReplicationLoadSink
| 方法 | 描述 |
|---|---|
| getAgeOfLastAppliedOp() | 返回类型:long 返回:上次成功的应用wal编辑的持续毫秒数 |
| getTimeStampsOfLastAppliedOp() | 返回类型:long 返回:上次成功的应用wal编辑的时间戳 |
| getAppliedBatches() | 返回类型:long 返回:应用的数据总批数 |
| getAppliedOps() | 返回类型:long 返回:应用数据ops的总数 |
| getAppliedHFiles() | 返回类型:long 返回:应用的hfile总数 |
说明:
Replication Admin新的接口,从HMaster获取指标值。每个Region Server在每一个心跳周期(默认是3秒)上报状态给HMaster。所以API通过Region Server在最后一个心跳时上报最新的指标值。
如果需要当前最新的指标值,使用由Region Server提供的JMX接口。