Airbyte中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 最新
    • 标签
    • 热门
    • 用户
    • 群组
    • 达之云

    入湖入仓,数据传输管道。开源软件Airbyte中文社区

    微信号:AirbyteCN

    QQ群:114917858

    配置airbyte连接器资源限制

    操作指南
    1
    1
    878
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      dazdata 最后由 编辑

      概述

      就像前面介绍 Workers & Jobs, 一共具有四种不同类型的job.

      尽管我们可以为所有四种类型的job配置资源,但是我们还是重点关注你Sync job,因为它是最常运行的作业。
      有三种不同的方法可以让我们给连接器配置Sync Job的资源需求:

      • Instance-wide - 应用到Sync Job的所有容器上。
      • Connector-specific - 应用到Sync Job的所有指定类型连接器的容器上
      • Connection-specific - 应用到Sync Job的所有指定连接(管道)的容器上

      一般来说,要求的范围越窄,优先级越高。

      按优先级递减顺序:

      • Connection-specific - 最高优先级。覆盖所有其他配置。我们建议根据具体情况使用它。
      • Connector-specific - 第二高的优先级。覆盖实例范围的配置。主要供 Airbyte 内部使用。我们建议远离这个。
      • Instance-wide - 最低优先级。被所有其他配置覆盖。旨在成为默认设置。我们建议将其设置为基准。

      配置 Instance-Wide 资源限制

      Instance-wide 资源限制是最简单的资源限制配置。所有的配置都只需要修改以下环境变量:

      • JOB_MAIN_CONTAINER_CPU_REQUEST - 定义job容器的最低 CPU 数量。单位遵循 Docker 或 Kubernetes,具体取决于部署。默认为空。
      • JOB_MAIN_CONTAINER_CPU_LIMIT - 定义job容器的最大 CPU 数量。单位遵循 Docker 或 Kubernetes,具体取决于部署。默认为空。
      • JOB_MAIN_CONTAINER_MEMORY_REQUEST - 定义job容器的最小 RAM 使用量。单位遵循 Docker 或 Kubernetes,具体取决于部署。默认为空。
      • JOB_MAIN_CONTAINER_MEMORY_LIMIT - 定义job容器的最大 RAM 使用量。单位遵循 Docker 或 Kubernetes,具体取决于部署。默认为空。

      配置 Connector-Specific 资源限制

      连接到 Airbyte 工作数据库并且执行以下 query(注意需要将 image-name 替换为你想要配置资源限制的连接器类型 )

      select * from actor_definition where actor_definition.docker_repository like '%<image-name>';
      

      替换 id-from-step-1 为上一步查询中获取到id,然后替换资源限制的值为想要限制的值,然后执行query

      update actor_definition set resource_requirements = '{"jobSpecific": [{"jobType": "sync", "resourceRequirements": {"cpu_limit": "0.5", "cpu_request": "0.5", "memory_limit": "500Mi", "memory_request": "500Mi"}}]}' where id = '<id-from-step-1>';
      

      配置 Connection-Specific 资源限制

      登录到 Airbyte Web 中,点击对应连接(管道)并从 url 中提取连接(管道) ID。

      • url的格式是http://<airbyte-server-ip:port>/workspace/<workspace-di>/connections/<connection-id>/status。如果您连接(管道)的url是http://localhost:8000/workspaces/92ad8c0e-d204-4bb4-9c9e-30fe25614eee/connections/5432b428-b04a-4562-a12b-21c7b9e8b63a/status,那么连接(管道) id 就是5432b428-b04a-4562-a12b-21c7b9e8b63a`

      连接到 Airbyte 工作数据库并且执行以下 query(注意需要将 id-from-step-1 替换您上一步获取的连接(管道)id,并将资源限制修改给您想要限制的值)

      update connection set resource_requirements = '{"cpu_limit": "0.5", "cpu_request": "0.5", "memory_limit": "500Mi", "memory_request": "500Mi"}' where id = '<id-from-step-1>';
      

      Debugging Connection 资源限制

      Airbyte 在创建容器时将资源需求记录为job log的一部分。源容器和目标容器的资源配置记录都将被log记录。

      如果 job 容器的内存不足,只需登录到 Airbyte Web 中的 job 页面,检查日志查看 job 的资源配置是否符合预期,如果确实给的资源不足,可以根据上面的步骤修改资源限制配置。

      Docker部署环境,日志显示示例:

      Creating docker container = destination-e2e-test-write-39-0-vnqtl with resources io.airbyte.config.ResourceRequirements@1d86d7c9[cpuRequest=<null>,cpuLimit=<null>,memoryRequest=200Mi,memoryLimit=200Mi]
      

      K8S部署环境,日志显示示例:

      2022-08-12 01:22:20 INFO i.a.w.p.KubeProcessFactory(create):100 - Attempting to start pod = source-intercom-check-480195-0-abvnr for airbyte/source-intercom:0.1.24 with resources io.airbyte.config.ResourceRequirements@11cc9fb9[cpuRequest=2,cpuLimit=2,memoryRequest=200Mi,memoryLimit=200Mi]
      
      1 条回复 最后回复 回复 引用 0
      • First post
        Last post