钩子

HBase

qianmoQqianmoQ· 更新于 2026-09-27· 阅读 8 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Apache Atlas Hook & Bridge for Apache HBase

HBase 模型

HBase 模型包含以下类型:

  • 实体类型:

    • hbase_namespace

      • 超类型:Asset
      • 属性:qualifiedName、name、description、owner、clusterName、parameters、createTime、modifiedTime
    • hbase_table

      • 超类型:DataSet
      • 属性:qualifiedName、name、description、owner、namespace、column_families、uri、parameters、createtime、modifiedtime、maxfilesize、isReadOnly、isCompactionEnabled、isNormalizationEnabled、ReplicaPerRegion、Durability
    • hbase_column_family

      • 超类型:DataSet
      • 属性:qualifiedName、name、description、owner、columns、createTime、bloomFilterType、compressionType、compactionCompressionType、encryptionType、inMemoryCompactionPolicy、keepDeletedCells、maxversions、minVersions、datablockEncoding、storagePolicy、ttl、blockCachedEnabled、cacheBloomsOnWrite、cacheDataOnWrite、evictBlocksOnClose、prefetchBlocksOnOpen、newVersionsBehavior、isMobEnabled、mobCompactPartitionPolicy

HBase 实体在 Atlas 中通过唯一属性 qualifiedName 创建并进行去重,其取值应按照如下格式进行组织。请注意,namespaceName、tableName 和 columnFamilyName 必须为小写。

hbase_namespace.qualifiedName:      <namespaceName>@<clusterName>
hbase_table.qualifiedName:          <namespaceName>:<tableName>@<clusterName>
hbase_column_family.qualifiedName:  <namespaceName>:<tableName>.<columnFamilyName>@<clusterName>

HBase Hook

Atlas HBase hook 以协处理器(co-processor)的身份注册到 HBase master。当检测到 HBase 命名空间/表/列族发生变化时,Atlas hook 会通过 Kafka 通知来更新 Atlas 中的元数据。请按照以下步骤在 HBase 中设置 Atlas hook:

  • 在 hbase-site.xml 中添加以下内容来注册 Atlas hook:
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.atlas.hbase.hook.HBaseAtlasCoprocessor</value>
</property>
  • 解压 apache-atlas-${project.version}-hbase-hook.tar.gz
  • 执行 cd apache-atlas-hbase-hook-${project.version}
  • 将文件夹 apache-atlas-hbase-hook-${project.version}/hook/hbase 中的全部内容复制到 <atlas package>/hook/hbase
  • 将 Atlas hook 的 jar 包链接到 HBase 的 classpath 中——执行 'ln -s <atlas package>/hook/hbase/* <hbase-home>/lib/'
  • 将 <atlas-conf>/atlas-application.properties 复制到 HBase 的 conf 目录。

atlas-application.properties 中的以下属性用于控制线程池和通知相关设置:

atlas.hook.hbase.synchronous=false # whether to run the hook synchronously. false is recommended to avoid delays in HBase operations. Default: false
atlas.hook.hbase.numRetries=3      # number of retries for notification failure. Default: 3
atlas.hook.hbase.queueSize=10000   # queue size for the threadpool. Default: 10000
atlas.cluster.name=primary # clusterName to use in qualifiedName of entities. Default: primary
atlas.kafka.zookeeper.connect=                    # Zookeeper connect URL for Kafka. Example: localhost:2181
atlas.kafka.zookeeper.connection.timeout.ms=30000 # Zookeeper connection timeout. Default: 30000
atlas.kafka.zookeeper.session.timeout.ms=60000    # Zookeeper session timeout. Default: 60000
atlas.kafka.zookeeper.sync.time.ms=20             # Zookeeper sync time. Default: 20

Kafka 通知生产者的其他配置可以通过在配置名称前加上 atlas.kafka. 前缀来指定。有关 Kafka 生产者支持的配置列表,请参阅 Kafka Producer Configs

注意事项

  • Atlas HBase 钩子仅捕获命名空间、表和列族的创建/更新/删除操作。对列的更改也会被捕获。

导入 HBase 元数据

Apache Atlas 提供了一个命令行工具 import-hbase.sh,用于将 Apache HBase 命名空间和表的元数据导入 Apache Atlas。可以使用该工具,利用 Apache HBase 集群中已有的命名空间/表来初始化 Apache Atlas。该工具支持导入特定表的元数据、特定命名空间中的所有表,或全部表的元数据。

Usage 1: <atlas package>/hook-bin/import-hbase.sh
Usage 2: <atlas package>/hook-bin/import-hbase.sh [-n <namespace regex> OR --namespace <namespace regex>] [-t <table regex> OR --table <table regex>]
Usage 3: <atlas package>/hook-bin/import-hbase.sh [-f <filename>]
           File Format:
             namespace1:tbl1
             namespace1:tbl2
             namespace2:tbl1

评论

登录后参与评论

正在加载评论…