面试题答案
一键面试计数器的创建
- API:
HTable
类的incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount)
方法。在创建计数器时,可利用该方法初始化计数器。 - 关键参数作用:
row
:用于指定行键,在HBase中,每行数据通过行键唯一标识,计数器也需要通过行键确定其所属的行。family
:列族,HBase表由一个或多个列族组成,计数器所在的列族,通过列族可对相关列进行逻辑分组。qualifier
:列限定符,在列族内唯一标识一个列,对于计数器,该限定符指定了具体的计数器列。amount
:在创建计数器时,可设置初始值,此参数指定计数器的初始增量值,通常创建时设为0。
增加计数
- API:
HTable
类的incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount)
方法。 - 关键参数作用:
row
:指定要增加计数的行键。family
:指定计数器所在的列族。qualifier
:指定具体的计数器列。amount
:指定增加的数值,正数表示增加,负数表示减少。
获取计数数值
- API:
HTable
类的incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount)
方法返回值,它返回操作后的计数器值。也可以使用Result
类相关方法结合getScanner
等方法获取。如先通过getScanner
获取ResultScanner
,再遍历ResultScanner
获取每行数据(Result
对象),然后通过Result
对象的getValue(byte[] family, byte[] qualifier)
方法获取计数器的值。 - 关键参数作用:
- 若使用
incrementColumnValue
获取,row
、family
、qualifier
参数作用同上述操作,指定获取计数数值对应的行、列族和列限定符。在使用Result
相关方法时,family
和qualifier
用于确定要获取值的具体列。
- 若使用