元数据类型
Hbase元数据类型, 包括命令空间、表、列族、列
public enum HBaseDataTypes {
// Classes
HBASE_NAMESPACE,
HBASE_TABLE,
HBASE_COLUMN_FAMILY,
HBASE_COLUMN;
public String getName() {
return name().toLowerCase();
}
}
Hbase元数据采集实现
1)批量采集HBaseBridge
2)实时变更 HBaseAtlasCoprocessor
虽然定义了HBASE_COLUMN,但是实际上是没有实现的,毕竟HBASE_COLUMN是动态添加的。
本文分析实时变更 HBaseAtlasCoprocessor。
HBaseAtlasCoprocessor源码分析
Hbase的Hook是基于Coprocessor协处理器实现的,HBaseAtlasCoprocessor 源码如下:
public class HBaseAtlasCoprocessor implements MasterCoprocessor, MasterObserver, RegionObserver, RegionServerObserver {
//...
final HBaseAtlasHook hbaseAtlasHook;
public HBaseAtlasCoprocessor() {
hbaseAtlasHook = HBaseAtlasHook.getInstance();
}
@Override
public void postCreateTable(ObserverContext<MasterCoprocessorEnvironment> observerContext, TableDescriptor tableDescriptor, RegionInfo[] hRegionInfos) throws IOException {
hbaseAtlasHook.sendHBaseTableOperation(tableDescriptor, null, HBaseAtlasHook.OPERATION.CREATE_TABLE, observerContext);
//...
}
@Override
public void postDeleteTable(ObserverContext<MasterCoprocessorEnvironment> observerContext, TableName tableName) throws IOException

该博客详细分析了HBase的元数据类型,包括命名空间、表、列族和列,并重点探讨了HBaseAtlasCoprocessor如何实现元数据的实时变更。HBaseAtlasCoprocessor利用Coprocessor协处理器机制,重写了MasterObserver的8个方法,实现对表的创建、删除等操作的监控,并通过HBaseAtlasHook发送通知。创建和删除元数据时,会生成对应的消息并发送到Atlas进行处理。
最低0.47元/天 解锁文章
643

被折叠的 条评论
为什么被折叠?



