Dataproc 集群配置

在 Cloud Data Fusion 中,集群配置是指定义您的 数据处理流水线在运行 Spark 时会利用计算资源 Dataproc 上的作业。本页面介绍了 集群配置。

默认临时集群(推荐)

推荐使用默认集群 Cloud Data Fusion 流水线。

  • Cloud Data Fusion 会自动预配和管理临时存储 Dataproc 集群。它会创建一个 集群,然后在流水线运行完成之后将其删除, 流水线运行完成。
  • 临时集群的优势: <ph type="x-smartling-placeholder">
      </ph>
    • 简单易用:您无需手动配置或管理 集群。
    • 高性价比:您只需为在运行期间使用的资源付费 流水线执行。

如需调整集群和调整性能,请参阅集群大小调整

静态集群(适用于特定场景)

在以下情况下,您可以使用静态集群:

  • 长时间运行的流水线:适用于连续运行的流水线或 因此静态集群的成本效益可能高于 需要反复创建和拆除临时集群
  • 集中式集群管理:如果您的组织需要 集中控制集群创建和管理政策、静态 可以与 Terraform 等工具搭配使用
  • 集群创建时间:创建新集群所需的时间 对您的应用场景来说会过于拥挤。

但是,静态集群需要更多的手动配置,并且涉及 管理集群生命周期

如需使用静态集群,您必须设置以下内容 媒体资源 在 Dataproc 集群上执行下列操作:

dataproc:dataproc.conscrypt.provider.enable=false

静态集群的集群配置选项

如果您选择使用静态集群,Cloud Data Fusion 会提供 配置选项:

  • 工作器机器类型:指定工作器的虚拟机类型 节点这决定了可以使用的 vCPU 和内存 。
  • 工作器数量:定义您的 集群。Dataproc 可能仍会根据情况自动扩缩此数量, 工作负载
  • 可用区:选择集群的 Google Cloud 可用区。位置可能会影响 数据位置和网络性能。
  • 其他配置:您可以为自己的设备配置高级选项, 例如抢占设置、网络设置 初始化操作。

最佳做法

为流水线创建静态集群时,请使用以下 配置。

参数 说明
yarn.nodemanager.delete.debug-delay-sec 保留 YARN 日志。
建议值:86400(相当于一天)
yarn.nodemanager.pmem-check-enabled 使 YARN 检查物理内存限制,并在出现以下情况时终止容器: 不局限于物理内存
推荐值:false
yarn.nodemanager.vmem-check-enabled 启用 YARN 以检查虚拟内存限制,并在出现以下情况时终止容器: 不局限于物理内存
推荐值:false

如需了解详情,请参阅针对现有 Dataproc 集群运行流水线

重复使用集群

您可以在两次运行之间重复使用 Dataproc 集群 处理时间。集群重用是在类似于连接的模型中实现的 即线程池化任何集群都会按指定的时间间隔 。新运行开始后,它会尝试找到 与计算配置文件的配置匹配的可用集群。 如果存在集群,则系统会使用该集群,否则将启动新集群。

重复使用集群的注意事项

  • 集群未共享。类似于常规临时集群 预配模型,则集群一次运行一条流水线。答 只有当集群处于空闲状态时,系统才会重复使用该集群
  • 如果为所有运行启用集群重用 用于处理所有运行作业的集群。类似于 临时 Dataproc 预配工具,无法直接控制 创建的集群数量您仍然可以使用 Google Cloud 报价 来管理资源例如,如果您运行 100 次,最多 7 次 因此在给定时间点最多可以有 7 个集群。
  • 集群会在不同流水线之间重复使用 使用相同的配置文件并共享相同的配置文件设置。如果是个人资料 自定义,集群仍可以重复使用,但前提是 完全相同,包括诸如 进行微调。

  • 启用集群重用后,有两个主要的费用注意事项:

    • 用于集群启动和初始化的资源较少。
    • 集群会使用更多资源在流水线之间空闲 和上次流水线运行之后的状态。

虽然很难预测集群重复使用的成本影响,但您可以使用 以最大限度地提高成本节省。我们的策略是确定 链式流水线,并为此关键路径实现集群重用。这会 确保集群会立即被重用,不会浪费任何空闲时间, 性能优势

启用集群重用

在已部署流水线配置的“计算配置”部分,或 创建新的计算配置文件:

  • 启用跳过集群删除
  • 最大空闲时间是指集群等待下一个流水线的最长时间 以便重复使用默认最长空闲时间为 30 分钟。对于最长空闲时间: 考虑重复使用的费用与集群可用性价值越高, 最大空闲时间值,则处于空闲状态并准备运行的集群越多。

问题排查:版本兼容性

问题:Cloud Data Fusion 环境的版本可能与 Dataproc 集群的版本不兼容。

建议:升级到最新的 Cloud Data Fusion 版本并 请使用某个受支持的 Dataproc 版本

早期版本的 Cloud Data Fusion 仅与 不受支持的 Dataproc 版本。 Dataproc 不会为使用这些版本创建的集群提供更新和支持。虽然你可以继续运行 使用不受支持的版本创建,建议您将其替换为 使用 支持的版本

Cloud Data Fusion 版本 Dataproc 版本
6.10 及更高版本 2.1、2.0*
6.9 2.1、2.0、1.5*
6.7-6.8 2.0、1.5*
6.4-6.6 2.0 *、1.3 **
6.1-6.3 1.3**

<ph type="x-smartling-placeholder"></ph> * Cloud Data Fusion 6.4 版及更高版本 兼容 受支持的 Dataproc 版本。除非有特定的操作系统功能 但建议的做法是指定 <ph type="x-smartling-placeholder"></ph> major.minor 映像版本
要指定 Dataproc 集群中使用的操作系统版本,操作系统 版本必须与某个受支持的 Dataproc Cloud Data Fusion 的 Cloud Data Fusion 版本。

<ph type="x-smartling-placeholder"></ph> ** Cloud Data Fusion 6.1 至 6.6 版 兼容 不支持的 Dataproc 版本 1.3

问题排查:退出容器但出现非零退出代码 3

问题:未使用自动扩缩政策,并且 Dataproc 集群正面临内存压力,导致 显示在日志中的内存不足异常:Container exited with a non-zero exit code 3

建议:增加执行器内存。

通过添加 task.executor.system.resources.memory 运行时来增加内存 传递给流水线。以下示例运行时参数用于设置 至 4096 MB:

"task.executor.system.resources.memory": 4096

如需了解详情,请参阅集群大小调整

后续步骤