遷移及設定 Conda 管道

預先設定的 Conda 套件通道將從 Managed Service for Apache Spark 叢集映像檔和無伺服器執行階段中移除。本文說明如何遷移及設定工作負載的 Conda 管道。

移除預先設定的 Conda 管道

先前,Managed Service for Apache Spark 映像檔會預先設定 Conda 管道 (例如 Anaconda 的 defaults 存放區),並將其與映像檔組合。由於授權異動,Managed Service for Apache Spark 將從所有過去和未來的 Managed Service for Apache Spark 映像檔和無伺服器執行階段中,移除所有預先設定的管道指標。

  • 變更內容:如果執行的指令 conda install PACKAGE 沒有明確提供的管道,系統就不會再根據預設存放區解析套件,且會失敗。
  • 不受影響的項目:從 PyPI (pip install PACKAGE 或 dataproc:pip.packages 叢集屬性) 安裝的標準 Python 套件完全不受影響。

提供無側邊圖像的管道

為協助開發人員適應這項更新,Managed Service for Apache Spark 已發布不含發布管道的次要版本,如下表所示。這些映像檔與現有映像檔的二進位檔和元件完全相容,差別只在於移除了預先設定的 Conda 管道。

圖片軌 舊版或受影響的版本 發布不含 Conda 的橫向版本 狀態和相容性
1.3 <= 1.3.95 1.3.96 與 1.3.95 100% 相容;已移除 Conda 管道
1.4 <= 1.4.80 1.4.81 100% 相容於 1.4.80;已移除 Conda 管道
1.5 <= 1.5.90 1.5.92 100% 相容於 1.5.90;已移除 Conda 管道
2.0 <= 2.0.160 2.0.161 100% 相容於 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 以上版本)。

詳情請參閱「Unsupported Managed Service for Apache Spark image versions」(不支援的 Managed Service for Apache Spark 映像檔版本)。

可用的擴充功能

Managed Service for Apache Spark 提供兩種擴充路徑,您可透過選擇加入許可清單來擴充,但須經服務團隊核准。

擴充功能類型

可用的擴充功能類型如下:

暫時性的 Conda 解決方法擴充功能

  • 效期:最晚至 2026 年 10 月 31 日。
  • 目的:為客戶提供即時作業緩衝區。2026 年 8 月 25 日和 9 月 1 日,系統將切換預設映像檔別名,屆時客戶的自動部署或初始化動作可能會中斷。
  • 優點:修改指令碼以加入 --channel 或轉換為無管道的圖片時,專案可暫時保留先前的行為。

舊版圖片額外資訊淘汰

  • 效期:2026 年 12 月 31 日。
  • 用途:適用於在 1.x 或 2.0 上執行的重要業務工作負載,這些工作負載無法立即重構程式碼,以適用於 Spark 3.x 以上版本或更新的 OS 環境。
  • 優點:您可以在 2026 年底前繼續在舊版軌上建立叢集,避免立即停止生產。
  • 必要條件:只有當目前的 1.x 和 2.0 工作負載使用符合 Conda 規範的橫向映像檔時,您才能取得這項擴充功能。

擴充功能規定

擴充功能須遵守法規和基礎架構限制。 如要獲得核准,必須符合下列所有條件:

  • 僅限現有專案:擴充功能僅適用於在 2026 年 8 月前,曾執行這些版本且有活動記錄的專案 ID。 Google Cloud新專案不會加入許可清單。
  • 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 Deprecation 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 或與客戶技術顧問聯絡,要求暫時加入允許清單。

優先順序 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 工作。
  • 如需專屬的現代化支援服務,請使用 Professional Services Organization (PSO) 或經認證的遷移合作夥伴,例如 Wipro 和 HCL。 Google Cloud

常見問題

以下各節將回答有關移除 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 Package Index (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 封裝依附元件,請確保建構定義指定 --channel conda-forge 或您的私人管道。

這項異動對 Google Kubernetes Engine 上的 Managed Service for Apache Spark 有何影響?

我們已更新 GKE 上的 Managed Service for Apache Spark 映像檔,移除預先設定的 Conda 管道 (例如執行階段映像檔 3.5-dataproc-28 和後續版本)。執行 conda install 的自訂容器 Dockerfile 必須更新,才能傳遞明確的 --channel。

Managed Service for Apache Airflow 或 Cloud Data Fusion 等代管式自動調度管理工具是否會受到影響?

由 Managed Airflow 或 Cloud Data Fusion 管理的預設標準管道,會叫用內建的 Managed Service for Apache Spark 叢集建立工作,因此不受影響,除非您的工作流程依賴自訂初始化動作,而這些動作會執行未標記的 conda install 指令,或固定使用已淘汰的 1.x 或 2.0 映像檔。

支援與協助

以下問題說明如何取得遷移作業的相關協助。

如何取得遷移作業的技術支援?

  • 如需技術疑難排解和許可清單要求,請傳送電子郵件至 dataproc-msa-support@google.com,或向 Cloud Customer Care 提交案件。
  • 如需企業遷移協助, Google Cloud PSO 提供結構化現代化套件,而經認證的系統整合 (SI) 合作夥伴 (包括 Wipro 和 HCL) 則提供專屬遷移服務,可申請合作夥伴服務補助款 (PSF)。