18800105616a

https://www.cnblogs.com/frankdeng/p/9310340.html

协处理器是HBase中一种高级组件,可以让用户在region所在的服务器上运行自定义的代码。与传统的RDBMS中的触发器和存储过程类似。

分为:

observer:类似于触发器(RegionObserver,WALObserver,MasterObserver)

endpoint:类似于存储过程

使用协处理器实现二级索引:

create \'guanzhu\' ,\'cf\'

create ‘fans’,\'cf\'

put \'guanzhu\',\'canglaoshi\',\'cf:name\',\'ronaldo\'

put \'fans\',\'ronaldo\',\'cf:star\',\'canglaoshi\'

创建协处理器类:

object HbaseCoprocessor extends BaseRegionObserver{
override def prePut(e: ObserverContext[RegionCoprocessorEnvironment], put: Put, edit: WALEdit, durability: Durability): Unit ={
//获取行键
var row: Array[Byte] = put.getRow
//获取name属性对应的多个版本的值
var cells: util.List[Cell] = put.get(Bytes.toBytes("cf"),Bytes.toBytes("name"))
//获取到最新版本的值
var cell: Cell = cells.get(0)
//获取到值
var value: Array[Byte] = CellUtil.cloneValue(cell)
//创建新的put对象
var put1: Put = new Put(value)
put1.addColumn(CellUtil.cloneFamily(cell),Bytes.toBytes("star"),row)
//提交
HbaseUtils.insert("fans",put1)
}
}
打包上传
上传到hdfs中
执行命令导入协处理器
disable \'guanzhu\'
alter \'guanzhu\',METHOD=>\'table_att\',\'coprocessor\'=>\'hdfs://hbase1:9000/hbase/guanzhu.jar|HbaseCoprocessor \'
enable \'guanzhu\'


分类:

技术点:

相关文章:

  • 2019-08-26
  • 2021-12-09
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
猜你喜欢
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
  • 2021-08-20
相关资源
相似解决方案