Atlas-Hook执行流程

Apache Atlas 通过 Hive Hook 实现了对 Hive 元数据的采集和管理,
其执行流程可以从源码角度进行详细说明,主要包括以下几个模块:

  1. Hive Hook 的事件监听器:Hive Hook 实现了 org.apache.atlas.hive.hook.HiveHook,
    作为 Hive 的事件监听器,用于监听 Hive 执行过程中的事件,如创建表、修改表、删除表等。
    HiveHook 实现了多个对应的事件处理方法,如 onTableCreate、onTableAlter、onTableDrop 等,
    用于将事件信息转换成 Atlas 实体对象并发送到 Atlas 服务。

  2. Hive Hook 的实体管理模块:Hive Hook 实现了多个实体管理器,用于管理不同类型的实体对象,
    如 Table、Column、Partition 等。每个实体管理器实现了对应的实体创建方法,用于将事件信息转
    换成对应的 Atlas 实体对象。例如,Table 实体管理器为 org.apache.atlas.hive.hook.HiveMetaStoreBridge,
    实现了 getTable、getTableType、createOrUpdateTable 等方法,用于将表创建、修改、删除事件信息转换成
    Atlas 中的 Table 实体对象,并将其发送到 Atlas 服务。

  3. Atlas Hook 的实体发送模块:Atlas Hook 实现了实体发送器,用于将生成的 Atlas 实体对象发送到 Atlas 服务。
    实体发送器实现了对应的发送方法,用于将实体对象转换成 JSON 格式,并通过 HTTP POST 请求发送到 Atlas 服务。
    例如,实体发送器为 org.apache.atlas.hook.AtlasHook,实现了 sendEntity 方法,用于将实体对象转换成 JSON 格式,
    并通过 HTTP POST 请求发送到 Atlas 服务。

  4. Atlas 服务的实体存储和管理模块:Atlas 服务实现了实体存储和管理模块,用于将接收到的实体对象存储到
    Atlas 数据库中,并进行元数据管理。Atlas 服务实现了实体存储和管理类,如 AtlasEntityStore、
    AtlasClassificationStore、AtlasTypeDefStore 等,用于将实体对象转换成 Atlas 数据库中的实体、
    分类、类型等对象,并进行存储和管理。

  5. Atlas Hook 的外部系统集成模块:Atlas Hook 实现了多个外部系统集成器,用于将生成的 Atlas 实体对象
    发送到其他外部系统,如 Ranger、Kafka 等。每个外部系统集成器实现了对应的发送方法,用于将实体对象转换
    成对应的格式,并通过对应的协议发送到外部系统。例如,Ranger 集成器为 org.apache.atlas.hook.AtlasRangerPlugin,
    实现了 onEntitiesAdded、onEntitiesUpdated、onEntitiesDeleted 等方法,用于将实体对象转换成 Ranger 中的策略和
    权限对象,并将其发送到 Ranger 服务。

总体来说,Atlas Hive Hook 的执行流程包括监听 Hive 事件、将事件信息转换成 Atlas 实体对象、将实体对象发送到 Atlas 服务等多个模块,通过这些模块的协同工作,实现了对 Hive 元数据的采集和管理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值