apache-atlas-hbase-hook源码分析

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

元数据类型

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 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风的心愿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值