迁移和设置 Conda 渠道

我们正在从 Managed Service for Apache Spark 集群映像和无服务器运行时中移除预配置的 Conda 软件包渠道。本文档介绍了如何为工作负载迁移和配置 Conda 渠道。

移除预配置的 Conda 渠道

以前,Managed Service for Apache Spark 映像捆绑了预配置的 Conda 渠道,例如 Anaconda 的 defaults 代码库。由于许可变更,Managed Service for Apache Spark 将从所有过去和未来的 Managed Service for Apache Spark 映像和无服务器运行时中移除所有预配置的渠道指针。

  • 更改内容:运行 conda install PACKAGE 但未明确提供渠道的命令不再针对默认代码库解析软件包,而是会失败。
  • 未发生变化的内容:从 PyPI 安装标准 Python 软件包(pip install PACKAGE 或 dataproc:pip.packages 集群属性)完全不受影响。

无通道侧向图像的可用性

为了帮助开发者适应此更新,Managed Service for Apache Spark 发布了无发布渠道的次要版本,如下表所示。这些映像与现有映像保持 100% 的二进制文件和组件兼容性,唯一的区别是移除了预配置的 Conda 渠道。

影像轨道 旧版或受影响的版本 发布了不含 Conda 的横向版本 状态和兼容性
1.3 <= 1.3.95 1.3.96 与 1.3.95 完全兼容;移除了 Conda 渠道
1.4 <= 1.4.80 1.4.81 与 1.4.80 完全兼容;移除了 Conda 渠道
1.5 <= 1.5.90 1.5.92 与 1.5.90 完全兼容;移除了 Conda 渠道
2.0 <= 2.0.160 2.0.161 与 2.0.160 完全兼容;移除了 Conda 渠道
2.1 <= 2.1.116 2.1.117、2.1.119 及更高版本 受支持的版本;Conda 渠道已移除
2.2 <= 2.2.84 2.2.85 以及 2.2.87 和更高版本 支持的发布版本;移除了 Conda 渠道
2.3 <= 2.3.31 2.3.32 以及 2.3.36 和更高版本 受支持的版本;Conda 渠道已移除

移除对工作负载的影响

  • 未固定版本的集群:任何指定映像版本别名(例如 --image-version=2.2-debian12)的集群创建脚本都会自动接收新的无渠道映像。
  • 固定映像或自定义映像:固定到较早的次要版本或使用自定义映像的集群会继续引用旧的渠道配置,除非进行更新。如果您使用的是固定映像,则必须申请延期,以争取更多时间并迁移到受支持的无渠道版本。
  • 执行失败:任何提交 conda install PACKAGE 但未指定渠道的初始化操作、流水线脚本或作业都会失败,并显示渠道解析错误。

如何配置 Conda 渠道

如果您的工作负载依赖于 Conda 来安装二进制软件包,则必须使用以下选项之一明确声明您的渠道。如需在与 Conda 相关的集群属性中指定渠道,请参阅使用与 conda 相关的集群属性。

选项 1:显式命令行标志

建议在临时安装时使用此选项。运行 conda install 时,传递 --channel 标志:

conda install --channel conda-forge PACKAGE

或者使用简短的 -c 标志:

conda install -c conda-forge PACKAGE

将 PACKAGE 替换为要安装的软件包的名称。

方法 2:集群初始化操作

建议在自动化环境中使用此选项。添加自定义初始化操作,以在 .condarc 配置文件中预配置要使用的渠道:

#!/bin/bash
# Preconfigure the community conda-forge channel or a private enterprise repository.
conda config --add channels conda-forge
conda config --set channel_priority strict

从旧版映像(1.x 和 2.0)迁移

Managed Service for Apache Spark 版本 1.3、1.4、1.5 和 2.0 已不受支持很长时间。运行较早的映像会带来严重的操作和安全风险,包括底层操作系统和开源软件 (OSS) 依赖项中已知的常见漏洞和披露 (CVE)。

  • Google Cloud 正在永久性地关闭 1.x 和 2.0 轨道上的图片生成功能。
  • GoogleCloudDataproc/initialization-actions GitHub 代码库中仅支持这些已弃用映像(1.x 和 2.0)的所有可用初始化操作也将被移除。
  • 所有工作负载都必须在 2026 年 10 月 15 日之前迁移到不含 Conda 渠道的横向映像。
  • 所有工作负载最终都必须迁移到受支持的有效版本(2.1、2.2、2.3 或 3.0 及更高版本)。

如需了解详情,请参阅不受支持的 Managed Service for Apache Spark 映像版本。

可用的扩展程序

Managed Service for Apache Spark 通过选择加入许可清单提供两种扩展途径,这需要服务团队的批准。

扩展类型

以下是可用的扩展程序类型。

临时 Conda 权宜解决方法扩展程序

  • 有效期:最长至 2026 年 10 月 31 日。
  • 目的:为因 2026 年 8 月 25 日和 2026 年 9 月 1 日的默认映像别名切换而导致自动化部署或初始化操作中断的客户提供即时操作缓冲区。
  • 好处:让项目在修改脚本以包含 --channel 或过渡到无渠道映像时,暂时保留之前的行为。

旧版图片弃用扩展服务

  • 有效期:最长至 2026 年 12 月 31 日。
  • 用途:适用于在 1.x 或 2.0 上运行的任务关键型工作负载,这些工作负载无法立即针对 Spark 3.x 或更高版本的操作系统环境重构代码。
  • 优势:让您可以在 2026 年底之前继续在旧版轨道上创建集群,避免生产立即停止。
  • 前提条件:只有当您当前的 1.x 和 2.0 工作负载使用符合 Conda 标准的横向映像时,您才能获取此扩展服务。

扩展要求

扩展程序受合规性和基础设施限制的约束。 如需获得批准,您必须满足以下所有要求:

  • 仅限现有项目:延期仅适用于在 2026 年 8 月之前曾运行过这些版本的 Google Cloud项目 ID。新项目不会被添加到许可名单中。
  • 必须在 2026 年 10 月 31 日之前完成横向映像交换:如果您获准将 1.x 或 2.0 的截止日期延期,则必须在 2026 年 10 月 31 日之前将集群创建配置迁移到横向兼容 Conda 的次要版本(1.3.96、1.4.81、1.5.92 和 2.0.161)。
  • 不使用 global 区域:对于 1.5 及更早版本的映像版本,不得将集群部署到旧版 global 区域。工作负载必须使用特定的区域端点(例如 us-central1 或 europe-west1)。
  • 已确定的迁移路线图:您必须拥有有效的现代化改造方案,才能在 2026 年 12 月 31 日截止日期之前将工作负载迁移到符合 Conda 标准的受支持版本(2.2 及更高版本或 3.0)。

如何申请延期

如需申请将扩展程序列入许可清单,请通过以下任一渠道提交申请:

  • 电子邮件:直接向 dataproc-msa-support@google.com 发送请求。
  • 支持请求:向 Cloud Customer Care 提交引用 Dataproc Conda 弃用 MSA 的支持请求。
  • 客户支持团队:请与您的专属 Google Cloud 技术支持客户经理 (TAM) 或客户工程师 (CE) 联系。

请在申请中提供以下信息:

  • Google Cloud 组织名称
  • 目标 Google Cloud 项目 ID 和项目编号
  • 受影响的集群名称或 UUID
  • 当前使用的映像版本
  • 申请延期的原因以及目标迁移完成日期

合规 Conda 渠道核对清单

请按顺序完成以下优先事项。

优先级 1:工作负载发现和清点

  • 识别已弃用的映像:审核贵组织的项目,找出在 1.3、1.4、1.5 或 2.0 上运行的所有集群。

    以下命令列出了某个区域中活跃集群的映像版本:

    gcloud dataproc clusters list --region=REGION \
        --format="table(clusterName, status.state, config.softwareConfig.imageVersion)"
    

    将 REGION 替换为集群所在的区域。

  • 审核 Conda 使用情况:检查初始化操作 (--initialization-actions)、启动脚本和作业提交脚本,看看是否有任何 conda install 调用。

优先级 2:立即对故障进行初步诊断

如果您遇到服务中断问题,请执行以下操作:

  • 如果自动化流水线因缺少 Conda 软件包而失败,请立即通过添加 --channel conda-forge(或 -c conda-forge)来修补初始化操作或脚本:

    conda install -c conda-forge PACKAGE
    
  • 如果集群创建因已弃用的映像块而失败,请立即联系 dataproc-msa-support@google.com 或您的 TAM,申请临时加入许可名单。

优先级 3:执行横向次要版本交换

此步骤无需更改任何代码。

  • 对于无法立即升级到映像版本 2.2 或更高版本的流水线,请更新集群创建模板(例如 Terraform、Apache Airflow DataprocCreateClusterOperator、Managed Service for Apache Airflow 和 CI/CD 脚本),以使用不含渠道的横向版本:

    • 将 1.3.* 替换为 1.3.96。
    • 将 1.4.* 替换为 1.4.81。
    • 将 1.5.* 替换为 1.5.92。
    • 将 2.0.* 替换为 2.0.161。
  • 原因:这些映像包含与之前的次次要版本相同的 Apache Spark、Apache Hadoop、Apache Hive 和 Java 版本。它们可保证 100% 的应用兼容性,而无需进行任何代码更改。

优先级 4:重新创建长时间运行的集群

如果您有部署在旧版映像上的静态长期运行集群,请安排维护窗口,以便使用最新的横向次次要版本(或符合 Conda 标准的受支持 2.x 或 3.x 版本)重新创建这些集群。重新创建集群可确保它们获取所有关键的安全和配置更新。

优先级 5:规划全面升级到受支持的版本

此优先事项的目标完成时间为 2026 年第 4 季度。

  • 在映像版本 2.2(Debian 12、Spark 3.5)或正式版 (GA) 映像版本 3.0 上建立测试环境。
  • 根据 Spark 3.x API 规范验证 PySpark、Scala 和 Java 作业。
  • 如果您需要专门的现代化改造支持,请使用 Google Cloud专业服务组织 (PSO) 或经过认证的迁移合作伙伴,例如 Wipro 和 HCL。

常见问题解答

以下部分解答了有关移除 Conda 渠道的常见问题。

一般信息和背景信息

以下问题将说明这些变化的原因以及它们之间的区别。

为什么 Managed Service for Apache Spark 要移除预配置的 Conda 渠道?

由于许可要求发生变化,Managed Service for Apache Spark 正在将其服务与专有 Anaconda 渠道解耦,并转向标准开源打包机制。

移除 Conda 渠道和弃用映像有何区别?

  • Conda 渠道移除会影响所有 Managed Service for Apache Spark 版本,包括当前受支持的版本 2.1、2.2 和 2.3,以及无服务器运行时。它会移除指向 Anaconda 代码库的默认指针。
  • 映像弃用专门影响旧版 1.x 和 2.0 映像。这些映像已服务终止,不再接收安全补丁,并且将被禁止用于创建集群。

技术问题和兼容性问题

以下问题涵盖了这些更改对 Python 软件包安装、Conda 使用和映像兼容性的影响。

此变更会影响 pip install 或 dataproc:pip.packages 吗?

否。使用 pip 或 Managed Service for Apache Spark 集群属性 dataproc:pip.packages 的标准 Python 软件包安装直接从 Python 软件包索引 (PyPI) 中拉取。PyPI 完全独立于 Conda,不会受到任何影响。

我的组织可以继续使用 Anaconda 或 Conda 软件包吗?

可以。您可以继续使用 Conda 来管理环境。不过,您必须明确提供代码库渠道。您可以使用初始化操作指向社区支持的 conda-forge 渠道(通过添加 -c conda-forge)或指向组织的私有、许可的 Anaconda 代码库镜像。

如果我的脚本未更新,会发生什么确切错误?

在无渠道映像上运行 conda install PACKAGE 时,Conda 会返回一个错误,指出未配置任何渠道,或者在默认搜索路径中找不到所请求的软件包。例如:PackagesNotFoundError: The following packages are not available from current channels。

什么是横向次要映像?为什么要使用它?

横向次要映像(例如 1.5 轨道的 1.5.92 或 2.0 轨道的 2.0.161)是一种映像版本,其中核心大数据生态系统组件(Hadoop、Spark、Hive、Presto 和 Java 运行时)与该轨道中的早期版本保持一致,但底层 Conda 渠道已被移除。 升级到横向次次要版本无需对 Spark 作业进行任何代码更改。

部署和生态系统

以下问题涵盖了这些更改对无服务器工作负载、Google Kubernetes Engine (GKE) 部署和托管式编排服务的影响。

这会如何影响 Managed Service for Apache Spark 无服务器?

自 2026 年 8 月 25 日起,新提交的无服务器批处理工作负载将在不包含预配置 Conda 渠道的基础运行时映像上运行。如果您使用自定义容器映像或 Conda 环境 tarball 来打包依赖项,请确保您的 build 定义指定了 --channel conda-forge 或您的私有渠道。

这会对 Google Kubernetes Engine 上的 Managed Service for Apache Spark 产生什么影响?

Managed Service for Apache Spark on GKE 映像已更新,移除了预配置的 Conda 渠道(例如,运行时映像 3.5-dataproc-28 及后续版本)。运行 conda install 的自定义容器 Dockerfile 必须更新为传递显式 --channel。

Managed Service for Apache Airflow 或 Cloud Data Fusion 等托管式编排器是否会受到影响?

由 Managed Airflow 或 Cloud Data Fusion 管理的默认标准流水线不受影响,除非您的工作流依赖于运行未标记为 conda install 的命令或固定已弃用的 1.x 或 2.0 映像的自定义初始化操作,而这些操作会调用内置的 Managed Service for Apache Spark 集群创建任务。

支持和帮助

以下问题介绍了在迁移过程中遇到问题时可以从哪些渠道获取帮助。

在迁移过程中,我可以从何处获得技术帮助?

  • 如需技术问题排查方面的帮助或提交许可名单请求,请发送电子邮件至 dataproc-msa-support@google.com,或向 Cloud Customer Care 提交支持服务工单。
  • 如需企业迁移方面的帮助, Google Cloud PSO 提供结构化现代化软件包,而经过认证的系统集成商 (SI) 合作伙伴(包括 Wipro 和 HCL)则提供专门的迁移服务,这些服务符合合作伙伴服务经费 (PSF) 的申请条件。