在 Cloud Data Fusion 中變更 Managed Service for Apache Spark 映像檔版本

更新 Cloud Data Fusion 中的 Managed Service for Apache Spark 映像檔版本,可維持依附元件相容性、存取新的 Spark 功能,以及解決管道執行階段問題。您可以在執行個體、命名空間或管道層級設定這個映像檔版本,以符合營運需求。

事前準備

停止 Cloud Data Fusion 執行個體中的所有即時管道和複製工作。變更 Managed Service for Apache Spark 映像檔版本時,如果即時管道或複製作業正在執行,變更不會套用至管道執行作業。

如果是即時管道,只要啟用檢查點功能,停止管道就不會導致資料遺失。如果是複製工作,只要資料庫記錄可用,停止及啟動複製工作就不會導致資料遺失。

控制台

  1. 前往 Cloud Data Fusion 的「Instances」(執行個體) 頁面,然後開啟要停止管道的執行個體。

    前往「Instances」(執行個體) 頁面

  2. 在 Pipeline Studio 中開啟各個即時管道,然後按一下「Stop」(停止)。

  3. 在「Replicate」(複製) 頁面中開啟各項複製工作,然後按一下「Stop」(停止)。

REST API

  • 如要擷取所有管道,請使用下列 REST API 呼叫:

    GET -H "Authorization: Bearer ${AUTH_TOKEN}" \
    "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps"
    

    將 NAMESPACE_ID 替換為命名空間名稱。

  • 如要停止即時管道,請使用下列 REST API 呼叫:

    POST -H "Authorization: Bearer ${AUTH_TOKEN}" \
    "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps/PIPELINE_NAME/spark/DataStreamsSparkStreaming/stop"
    

    將 NAMESPACE_ID 替換為命名空間名稱,並將 PIPELINE_NAME 替換為即時管道名稱。

  • 如要停止複製工作,請使用下列 REST API 呼叫:

    POST -H "Authorization: Bearer ${AUTH_TOKEN}" \
    "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps/REPLICATION_JOB_NAME/workers/DeltaWorker/stop"
    

    將 NAMESPACE_ID 替換為命名空間名稱,並將 REPLICATION_JOB_NAME 替換為複製工作的名稱。

    詳情請參閱「停止即時管道」和「停止複製工作」。

檢查並覆寫 Cloud Data Fusion 中 Managed Service for Apache Spark 的預設版本

  1. 前往 Cloud Data Fusion 網頁介面。

  2. 依序點選「System Admin」 >「Configuration」 >「System Preferences」。

    按一下「編輯系統偏好設定」

  3. 如果系統偏好設定中未指定 Managed Service for Apache Spark 映像檔,或要變更偏好設定,請按一下「Edit System Preferences」(編輯系統偏好設定)。

    1. 在「Key」欄位中輸入下列文字:

      system.profile.properties.imageVersion

    2. 在「Value」(值) 欄位中輸入所選 Managed Service for Apache Spark 映像檔,例如 2.1。

    3. 按一下「Save & Close」。

設定系統偏好

這項變更會影響整個 Cloud Data Fusion 執行個體,包括所有命名空間和管道執行作業,除非執行個體中的命名空間、管道或執行階段引數覆寫了映像檔版本屬性。

變更 Managed Service for Apache Spark 映像檔版本

您可以在 Cloud Data Fusion 網頁介面的「Compute Configurations」(運算設定)、「Namespace Preferences」(命名空間偏好設定) 或「Pipeline Runtime Arguments」(管道執行階段引數) 中設定映像檔版本。

在命名空間偏好設定中變更圖片

如果您已覆寫命名空間屬性中的映像檔版本,請按照下列步驟操作:

  1. 前往 Cloud Data Fusion 網頁介面。

  2. 依序點選「System Admin」 >「Configuration」 >「Namespaces」。

  3. 開啟各個命名空間,然後按一下「Preferences」(偏好設定)。

    1. 確認沒有任何覆寫項目的鍵為 system.profile.properties.imageVersion,且映像檔版本值不正確。

    2. 按一下「完成」。

變更系統運算設定檔中的映像檔

  1. 前往 Cloud Data Fusion 網頁介面。

  2. 依序點選「System Admin」 > 「Configuration」。

  3. 依序點選「System Compute Profiles」>「Create New Profile」。

  4. 選取 Managed Service for Apache Spark 佈建工具。

    選取 Dataproc 佈建工具

  5. 建立 Managed Service for Apache Spark 的設定檔。在「Image Version」(映像檔版本) 欄位中,輸入 Managed Service for Apache Spark 映像檔版本。

    輸入映像檔版本

  6. 在「Studio」頁面執行管道時,請選取這個運算設定檔。在管道執行頁面中,依序點選「Configure」 >「Compute config」,然後選取這個設定檔。

  7. 選取 Managed Service for Apache Spark 設定檔,然後按一下「Save」(儲存)。

  8. 按一下「完成」。

變更管道執行階段引數中的映像檔

如果您已使用管道執行階段引數中的屬性覆寫映像檔版本,請按照下列步驟操作:

  1. 前往 Cloud Data Fusion 網頁介面。

  2. 依序按一下「選單」。

  3. 在「List」(清單) 頁面中,選取要更新的管道。

    管道會在「Studio」頁面開啟。

  4. 如要展開「Run」選項,請按一下 展開箭頭。

    「Runtime Arguments」(執行階段引數) 視窗隨即開啟。

  5. 確認沒有任何覆寫項目的鍵為 system.profile.properties.imageVersion,且值為不正確的映像檔版本。

  6. 按一下 [儲存]。

    設定管道執行階段引數

使用所選映像檔版本,重新建立 Cloud Data Fusion 使用的靜態 Managed Service for Apache Spark 叢集

如果您將現有的 Managed Service for Apache Spark 叢集與 Cloud Data Fusion 搭配使用,請按照 Managed Service for Apache Spark 指南,使用所選 Cloud Data Fusion 版本的 Managed Service for Apache Spark 映像檔版本,重新建立叢集。

或者,您也可以使用所選 Managed Service for Apache Spark 映像檔版本建立新的 Managed Service for Apache Spark 叢集,然後在 Cloud Data Fusion 中刪除並重新建立運算設定檔,並使用相同的運算設定檔名稱和更新後的 Managed Service for Apache Spark 叢集名稱。這樣一來,執行中的批次管道就能在現有叢集上完成執行,後續的管道執行作業則會在新的 Managed Service for Apache Spark 叢集上進行。確認所有管道執行作業都已完成後,即可刪除舊的 Managed Service for Apache Spark 叢集。

確認 Managed Service for Apache Spark 映像檔版本已更新

控制台

  1. 在 Google Cloud 控制台中,前往 Managed Service for Apache Spark 的「Clusters」(叢集) 頁面。

    前往叢集

  2. 開啟 Cloud Data Fusion 指定新版本時建立的新叢集「Cluster details」(叢集詳細資料) 頁面。

    「Image version」(映像檔版本) 欄位會顯示您在 Cloud Data Fusion 中指定的新值。

REST API

  1. 取得叢集清單及其中繼資料:

    GET -H "Authorization: Bearer ${AUTH_TOKEN}" \
    https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION_ID/clusters
    

    更改下列內容:

    • PROJECT_ID:命名空間名稱
    • REGION_ID:叢集所在區域的名稱
  2. 搜尋管道名稱 (叢集名稱)。

  3. 在該 JSON 物件下方,查看 config > softwareConfig > imageVersion 中的圖片。

將 Managed Service for Apache Spark 映像檔變更為 2.1 以上版本

Cloud Data Fusion 6.9.1 以上版本支援 Managed Service for Apache Spark 映像檔 2.1 Compute Engine,可在 Java 11 中執行。在 6.10.0 以上版本中,預設映像檔為 2.1。

如果將批次管道和複製工作的映像檔從舊版變更為 2.1 以上版本,則資料庫外掛程式在這些執行個體中使用的 JDBC 驅動程式必須與 Java 11 相容,才能成功執行。

Managed Service for Apache Spark 映像檔 2.2 和 2.1 在 Cloud Data Fusion 中有下列限制:

  • 不支援 MapReduce 工作。
  • 執行個體中資料庫外掛程式使用的 JDBC 驅動程式版本必須更新,才能支援 Java 11。請參閱下表,瞭解適用於 Managed Service for Apache Spark 2.2、2.1 和 Java 11 的驅動程式版本:
JDBC 驅動程式 Cloud Data Fusion 6.9.1 移除舊版 支援 Java 8 和 Java 11 的版本,可與 Managed Service for Apache Spark 2.2、2.1 或 2.0 搭配使用
MySQL 適用的 Cloud SQL JDBC 驅動程式 - 1.0.16
PostgreSQL 適用的 Cloud SQL JDBC 驅動程式 - 1.0.16
Microsoft SQL Server JDBC 驅動程式 Microsoft JDBC 驅動程式 6.0 Microsoft JDBC 驅動程式 9.4
MySQL JDBC 驅動程式 5.0.8、5.1.39 8.0.25
PostgreSQL JDBC 驅動程式 9.4.1211.jre7、9.4.1211.jre8 42.6.0.jre8
Oracle JDBC 驅動程式 ojdbc7 ojdbc8 (12c 以上版本)

使用 Managed Service for Apache Spark 2.1 以上版本時的記憶體用量

使用 Managed Service for Apache Spark 2.1 以上版本的管道,記憶體用量可能會增加。如果您將執行個體升級至 6.10 以上版本,且先前的管道因記憶體問題而失敗,請在管道的 Resources 設定中,將驅動程式和執行器記憶體增加至 2048 MB。

增加驅動程式和執行器記憶體

或者,您也可以將 system.profile.properties.imageVersion 執行階段引數設為 2.0-debian10,覆寫 Managed Service for Apache Spark 版本。