钩子

Sqoop

qianmoQqianmoQ· 更新于 2026-09-28· 阅读 6 分钟· 0 次阅读

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

Apache Atlas 的 Apache Sqoop 钩子

Sqoop 模型

Sqoop 模型包含以下类型:

  • 实体类型:

    • sqoop_process

      • 超类型:Process
      • 属性:qualifiedName、name、description、owner、inputs、outputs、operation、commandlineOpts、startTime、endTime、userName
    • sqoop_dbdatastore

      • 超类型:DataSet
      • 属性:qualifiedName、name、description、owner、dbStoreType、storeUse、storeUri、source
  • 枚举类型:

    • sqoop_operation_type

      • 取值:IMPORT、EXPORT、EVAL
    • sqoop_dbstore_usage

      • 取值:TABLE、QUERY、PROCEDURE、OTHER

Sqoop 实体在 Atlas 中通过唯一属性 qualifiedName 进行创建和去重,其取值格式应遵循以下说明。

sqoop_process.qualifiedName:     sqoop <operation> --connect <url> {[--table <tableName>] || [--database <databaseName>]} [--query <storeQuery>]
sqoop_dbdatastore.qualifiedName: <storeType> --url <storeUri> {[--table <tableName>] || [--database <databaseName>]} [--query <storeQuery>]  --hive-<operation> --hive-database <databaseName> [--hive-table <tableName>] --hive-cluster <clusterName>

Sqoop Hook

Sqoop 增加了 SqoopJobDataPublisher,用于在导入作业完成后将数据发布到 Atlas。目前,SqoopHook 仅支持 hiveImport。它用于按照上文详述的模型在 Atlas 中添加实体。

请按照以下步骤在 Hive 中设置 Atlas hook:

添加以下属性以在 Sqoop 中启用 Atlas hook:

  • 在 <sqoop-conf>/sqoop-site.xml 中加入以下内容来设置 Atlas hook:
<property>
     <name>sqoop.job.data.publish.class</name>
     <value>org.apache.atlas.sqoop.hook.SqoopHook</value>
   </property>
  • 解压 apache-atlas-${project.version}-sqoop-hook.tar.gz
  • 执行 cd apache-atlas-sqoop-hook-${project.version}
  • 将 apache-atlas-sqoop-hook-${project.version}/hook/sqoop 文件夹中的全部内容复制到 <atlas package>/hook/sqoop
  • 将 <atlas-conf>/atlas-application.properties 复制到 Sqoop 的配置目录 <sqoop-conf>/
  • 将 <atlas package>/hook/sqoop/*.jar 链接到 sqoop 的 lib 目录中

atlas-application.properties 中的以下属性用于控制线程池和通知的详细配置:

atlas.hook.sqoop.synchronous=false # whether to run the hook synchronously. false is recommended to avoid delays in Sqoop operation completion. Default: false
atlas.hook.sqoop.numRetries=3      # number of retries for notification failure. Default: 3
atlas.hook.sqoop.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

注意事项

  • 目前 sqoop hook 仅捕获以下 sqoop 操作

    • hiveImport

评论

登录后参与评论

正在加载评论…