全部產品
Search
文件中心

AnalyticDB:託管Ray服務

更新時間:Jul 23, 2025

AnalyticDB Ray是AnalyticDB for MySQL推出的全託管Ray服務。該服務在開源Ray的基礎上進行了最佳化與增強,提升了核心效能並簡化了營運管理。AnalyticDB Ray主要適用於多模態處理、搜尋推薦、金融風控等複雜 AI 情境,旨在助力企業高效構建 Data + AI一體化架構,實現AI應用的規模化落地。

前提條件

叢集的產品系列為企業版、基礎版或湖倉版

什麼是AnalyticDB Ray

開源 Ray 是一款專為 AI 與高效能運算設計的分散式運算架構,通過簡潔的 API 抽象實現高效的分布式調度,使用者僅需幾行代碼,即可將單機任務擴充至千節點叢集,能夠像調用本地函數一樣調度遠端資源。其內建模組(如Ray Tune、Ray Train和Ray Serve)與TensorFlow、PyTorch等無縫相容。在活躍的開源社區和Anyscale等企業的推動下,Ray已成為構建 AI 應用的重要工具。

儘管開源 Ray 提供了高度靈活的分散式運算能力,但在實際生產環境中,企業仍面臨分布式作業最佳化、資源精細化調度、叢集營運複雜以及系統穩定性與高可用性保障等挑戰。

為解決上述挑戰,AnalyticDB for MySQL推出全託管Ray服務——AnalyticDB Ray(下文簡稱ADB Ray)。ADB Ray基於開源Ray的豐富生態,通過多模態處理、具身智能、搜尋推薦、金融風控等典型情境的驗證,對Ray核心和服務能力進行了全面增強,最佳化了核心效能,簡化了叢集營運,並與AnalyticDB for MySQL湖倉平台無縫整合,助力企業構建Data + AI一體化架構,加速企業AI的規模化落地。

費用說明

建立Ray Cluster資源群組,會產生如下費用:

  • Worker磁盘空间會按照設定的儲存空間大小計費。

  • Worker资源类型為CPU時,會按照所使用ACU彈性資源群組計費。

  • Worker资源类型為GPU時,會按照GPU的規格、數量計費。

注意事項

  • Worker節點刪除、重啟會造成如下影響,建議在業務低峰期變更Ray Cluster資源群組的Worker配置,避免將作業調度至需要重啟的Worker節點上,以防止出現非預期的資料丟失和作業失敗的情況。

    • 運行在Worker節點上的Driver、Actor和Task會失敗,但Ray會自動重新下發Actor和Task。

    • Ray分布式Object Storage Service中的資料丟失,如果有其他Task依賴重啟Worker上的資料,Task也會失敗。

  • 資源群組變更:

    • 刪除資源群組:如果有正在啟動並執行任務,刪除資源群組將導致該資源群組中啟動並執行任務中斷。

    • 刪除Worker Group:刪除Ray Cluster資源群組中的Worker Group時,會導致Worker節點刪除。Worker節點刪除造成的影響,請參見Worker節點刪除的影響

    • 變更Worker個數:若變更後的Worker最大個數小於變更前的最小Worker個數,會導致Worker節點被刪除。Worker節點刪除造成的影響,請參見Worker節點刪除的影響

    • 變更其他配置:除最小Worker個數最大Worker個數參數之外,其他的參數變更(例如:Head資源規格、Worker資源類型)都會導致Head節點或相應Worker Group中的Worker節點重啟。Worker節點重啟造成的影響,請參見Worker節點重啟的影響

  • 自動擴容:

    • Ray Cluster的擴容依賴於邏輯資源需求,而非實體資源利用率。因此,即使實體資源利用率很低,Ray Cluster也可能觸發自動擴容。

    • 某些第三方應用程式會儘可能建立更多的Task以充分利用資源。在允許自動擴縮的情況下,會建立大量的Task,使得Ray快速地擴容到最大規模。因此,在運行第三方程式時,請瞭解其建立Task的內在邏輯,以避免產生額外的資源消耗。

  • 容災機制:ADB Ray中配置了Redis容災機制,確保在Head節點重啟時,Ray Cluster狀態、Actor狀態和Task狀態均能夠恢複。

建立Ray服務

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,然後單擊目的地組群ID。

  2. 在左側導覽列,單擊集群管理>資源管理,單擊資源組管理頁簽。然後在資源群組列表的右上方,單擊新增資源組

  3. 為資源群組命名,選擇任務類型AI,配置如下參數:

    參數名稱

    說明

    部署類型

    選擇RayCluster

    Head资源规格

    Head負責管理Ray中繼資料、運行GCS服務(Global Control Store)、參與Task調度,但不執行Task。

    Head資源規格即CPU核心數,可選擇small、m.xlarge、m.2xlarge等規格,各個規格所對應的CPU核心數與Spark資源規格一致,詳情請參見Spark資源規格列表

    重要

    Head主要負責為作業調度,請參照Ray Cluster的整體規模選擇Head規格。

    Worker Group名称

    Worker Group的名稱,您可以自訂。一個AI資源群組中可以配置多個不同名的Woker Group。

    Worker资源类型

    支援CPUGPU兩種類型。

    • 若您的業務涉及日常計算任務、多任務處理或複雜的邏輯運算建議您選擇CPU

    • 若您的業務涉及大量資料平行處理、機器學習或深度學習訓練建議您選擇GPU

    Worker资源规格

    • Worker资源类型CPU,Woker資源規格可選擇small、m.xlarge、m.2xlarge等規格,各個規格所對應的CPU核心數與Spark資源規格一致,詳情請參見Spark資源規格列表

    • Worker资源类型GPU,由於涉及到GPU機型、庫存等問題,請提交工單聯絡支援人員協助選型。

    Worker磁盘空间

    磁碟空間主要用於儲存Ray日誌、臨時資料以及Ray分布式Object Storage Service的溢出資料。單位:GB,取值範圍是[30,2000]。預設100GB。

    重要

    磁碟僅作為臨時儲存空間,請勿將其用作長期資料存放區。

    最小Worker个数

    最大Worker个数

    最小Worker个数:一個Worker Group中至少需要啟動並執行Woker個數,最小為1。

    最大Worker个数:一個Worker Group中最多需要啟動並執行Woker個數,最大為8。

    Worker Group支援自動彈性,且每個Worker Group都能獨立彈性。當最小Woker個數和最大Woker個數不同時,AnalyticDB for MySQL會根據任務的Task個數在最小Woker個數和最大Woker個數之間動態地擴縮容Woker個數。若存在多個Worker Group,將會自動進行首選,從而避免單個Worker Group過載或閑置的情況。

    分配单元

    單個Worker節點上分配多少張GPU。例如配置單位為1/3,則表示每個Worker節點配置1/3張GPU。

    重要

    Worker资源类型GPU時,填寫該參數。

  4. 單擊確定

串連並使用Ray服務

步驟一:擷取串連地址

  1. 在左側導覽列,單擊叢集管理 > 資源管理,單擊資源群組管理頁簽。

  2. 單擊對應資源群組操作列的更多 > 詳情,查看串連地址。

    • Ray grafana:Grafana視覺化檢視串連地址,單擊可跳轉至Grafana可視化頁面。

    • Ray叢集連結地址:內網串連地址。

    • Ray Dashboard:公網串連地址、Dashboard地址。單擊可跳轉至Ray可視化介面,可查看Ray Cluster資源群組狀態和作業狀態。

    image

步驟二:提交作業

前提條件

已安裝Python環境,且Python版本為3.7及以上版本。

操作步驟

支援以下兩種方式提交作業:

  • 通過CTL提交作業(推薦):使用CTL將指令檔打包上傳到Ray Cluster執行。入口程式在Ray Cluster中執行,需要消耗Ray Cluster資源群組的資源。

  • 使用ray.init串連Ray Cluster執行作業:使用ray.init串連Ray Cluster,入口程式在本地執行,不消耗Ray Cluster資源群組的資源。且需要本地Ray版本Python版本與Ray Cluster版本一致,Ray Cluster版本變更時需要同步變更本地環境配置。

通過CTL提交作業
  1. 執行以下命令,安裝Ray。

    pip3 install ray[default]
  2. (可選)配置環境變數。

    說明

    您可以配置全域環境變數來指定串連地址,或在提交作業時指定串連地址。

    export RAY_ADDRESS="RAY_URL"

    參數說明:

    RAY_URL:Ray串連地址。請填寫步驟一擷取的串連地址。

  3. 提交作業。

    重要

    提交作業時,系統會將working-dir參數指定目錄下的所有檔案打包上傳至ray head執行。因此您需注意:

    • working-dir參數指定的目錄盡量精簡,否則檔案過大可能導致上傳失敗。

    • 所有依賴的指令檔需全部放置在working-dir參數指定目錄下,否則可能因缺少依賴檔案而無法執行。

    • 若您已配置環境變數,請執行以下語句提交作業。

      ray job submit --working-dir your_working_directory -- python your_python.py 

      參數說明:

      • your_working_directory:指令檔所在的路徑。本文樣本指令檔路徑為/root/Ray

      • your_python.py:指令檔。本文樣本指令檔為scripts.py

      樣本:

      ray job submit --working-dir /root/Ray -- python scripts.py
    • 若您未配置環境變數,請執行以下語句提交作業。

      ray job submit --address ray_url --working-dir your_working_directory -- python your_python.py 

      參數說明:

      • ray_url:Ray串連地址。請填寫步驟一擷取的串連地址。

      • your_working_directory:指令檔所在的路徑。

      • your_python.py:指令檔。本樣本指令檔為scripts.py

      樣本:

      ray job submit --address http://amv-uf64gwe14****-rayo.ads.aliyuncs.com:8265 --working-dir /root/Ray -- python scripts.py 
  4. 查詢作業運行狀態。

    您可以通過如下兩種方式查看作業運行狀態:

    • 通過命令查看:

      ray job list
    • 通過可視化介面查看:

      1. 資源群組管理頁面。單擊對應資源群組操作列的更多 > 詳情

      2. 單擊Ray Dashboard地址進入可視化介面。

使用ray.init串連Ray Cluster執行作業
  1. 執行以下命令,安裝Ray。

    pip3 install ray
  2. (可選)配置全域環境變數。

    說明

    您可以配置全域環境變數來指定串連地址,或在指令檔中指定串連地址。

    export RAY_ADDRESS="RAY_URL"

    參數說明:

    RAY_URL:Ray串連地址。步驟一擷取的串連地址為dashboard地址,連接埠為8265,通過ray.init()串連ray時,需要將連接埠替換為10001、將協議替換為ray。

    例如,步驟一擷取的dashboard地址為http://amv-uf64gwe14****-rayo.ads.aliyuncs.com:8265,此處需要替換為ray://amv-uf64gwe14****-rayo.ads.aliyuncs.com:10001

  3. 運行程式。

    • 若您已配置全域環境變數,請執行以下命令運行程式。

      python scripts.py
    • 若您未配置全域環境變數,請執行以下命令運行程式。

      1. 修改指令檔,指定串連地址。

        ray.init(address="RAY_URL")

        參數說明:

        RAY_URL:Ray串連地址。步驟一擷取的串連地址為dashboard地址,連接埠為8265,通過ray.init()串連ray時,需要將連接埠替換為10001、將協議替換為ray。

        例如,步驟一擷取的dashboard地址為http://amv-uf64gwe14****-rayo.ads.aliyuncs.com:8265,此處需要替換為ray://amv-uf64gwe14****-rayo.ads.aliyuncs.com:10001

        重要

        如果ray串連地址配置不正確,ray.init()將會啟動一個本地叢集執行程式。請注意查看輸出日誌以確定正確串連到ray叢集。

      2. 執行如下命令運行程式:

        python scripts.py