方案概述
本方案適用於巨量資料開發人員快速獲得可用 Spark 環境,用於資料處理、互動式查詢和機器學習的情境。
什麼是Apache Spark
Apache Spark 是專為大規模資料處理設計的通用計算引擎,以 Scala 作為應用程式架構,依託記憶體分布式資料集,支援互動式查詢與迭代計算負載。
本模板安裝的軟體版本如下:
組件 | 說明 | 版本 |
JDK(Java Development Kit) | Java 運行環境 | 1.8.0 |
Hadoop | 分布式系統基礎架構,提供 HDFS 分布式儲存 | 2.7.7 |
Scala | 程式設計語言,Spark 核心架構基於 Scala 開發 | 2.12.1 |
Spark | 通用巨量資料計算引擎,支援 SQL 查詢、流處理、機器學習 | 2.1.0 |
本方案的特點:基於已有VPC部署
與其他 ROS 部署方案不同,本模板要求使用已有的專用網路、交換器和安全性群組,不會建立網路資源。這種設計適用於:
已有標準化網路環境,需要在現有專用網路中補充 Spark 服務。
多重專案共用一個專用網路,需要避免重複建立網路資源。
建立的資源清單
序號 | 資源名稱 | ROS 資源類型 | 用途說明 |
1 | ECS 雲端服務器執行個體 |
| 運行 Spark 單機版的計算節點 |
2 | 彈性公網 IP(EIP) |
| 為 ECS 執行個體提供公網訪問入口 |
3 | EIP 綁定關聯 |
| 將彈性公網 IP 綁定到 ECS 執行個體 |
部署完成後獲得的結果
模板成功執行後,您將獲得:
一台 ECS 雲端服務器執行個體(CentOS 7 系統,已綁定彈性公網 IP)。
ECS 上已安裝 JDK 1.8.0、Hadoop 2.7.7、Scala 2.12.1、Spark 2.1.0。
資源棧的輸出中提供
SparkWebSiteURL,可登入 Spark 管理主控台。
如需通過外網訪問 SparkWebSiteURL,請在安全性群組添加入方向 8088 和 8080 連接埠的訪問規則。具體操作請參見使用安全性群組。
架構圖

前提條件
在使用本模板前,請確認以下條件:
部署環節
部署參數
本模板要求使用已有的專用網路資源,下表中的參數均需在建立資源棧時填寫。建立資源棧時所選地區需與已有專用網路、交換器和安全性群組所在地區一致。
參數 | 類型 | 說明 | 樣本 |
現有 VPC 的執行個體 ID | String | VPC執行個體ID。關於如何建立和查詢VPC執行個體,請參見建立和管理專用網路。 |
|
交換器可用性區域 | String | 專用網路下的交換器可用性區域 ID。 | 華東 1 可用性區域 K |
網路交換器 ID | String | 專用網路下的交換器ID。關於如何建立和查詢交換器,請參見建立和管理交換器。 |
|
業務安全性群組 ID | String | ECS安全性群組ID。關於如何查詢安全性群組ID,請參見使用安全性群組。 |
|
實例規格 | String | Spark 對記憶體需求較高,建議使用 2 核 4 GiB 及以上規格。 |
|
鏡像ID | String | ECS 鏡像 ID,預設使用 |
|
執行個體密碼 | String | ECS登入密碼,長度8~30,含大小寫、數字、特殊字元。 |
|
公網 IP 頻寬值 | Number | 公網 IP 的頻寬。取值範圍:1~100。單位:Mbps。 | 5 |
磁碟類型 | String | 系統硬碟類型。取值:
更多資訊,請參見雲端硬碟概述。 |
|
系統硬碟空間 | Number | 執行個體系統硬碟大小。取值範圍:40~500。單位:GB。 | 40 |
部署方式
方式一:通過 ROS 公用範本部署(推薦)
登入ROS 控制台。
在左側導覽列,選擇模板 > 公共模板 > 入門模板。
在搜尋方塊中輸入 Spark,找到模板 Spark 單機版(已有 VPC),單擊模板卡片中的建立資源棧。
在配置參數頁面,輸入資源棧名稱,並按上表填寫部署參數。
單擊下一步:檢查並確認,然後單擊建立。
在左側導覽列,選擇,在資源棧列表頁面單擊目標資源棧ID,在資源棧資訊頁簽查看資源棧狀態,等待狀態變為
CREATE_COMPLETE。單擊輸出頁簽,擷取
SparkWebSiteURL。在瀏覽器中訪問該 URL,登入 Spark 管理主控台即部署成功。
方式二:通過 ROS IaC Code 部署
IaC Code 是面向雲基礎設施的 AI 基礎設施即代碼助手,可根據自然語言描述產生 ROS 模板並部署,使用方式參見IaC Code快速入門。
# prompt
幫我在已有 VPC 中建立一台 ECS 並部署 Spark 單機版開發測試環境。
要求:
1. 使用已有的 VPC、VSwitch 和安全性群組(不建立網路資源)。
2. 建立彈性公網 IP 並綁定到 ECS 執行個體。
3. ECS 使用 CentOS 7 鏡像。
4. 通過 UserData 指令碼自動安裝 JDK 1.8.0、Hadoop 2.7.7、Scala 2.12.1、Spark 2.1.0。
5. 配置 JAVA_HOME、HADOOP_HOME、SCALA_HOME、SPARK_HOME 環境變數。
6. 啟動 Spark 服務並輸出 SparkWebSiteURL。
7. 安全性群組需開放入方向 8088 和 8080 連接埠。部署後動作
驗證Spark環境
在資源棧的輸出頁簽擷取
SparkWebSiteURL。通過瀏覽器訪問該地址,顯示 Spark 管理主控台頁面表示部署成功。
串連ECS執行個體後,驗證:
java -version # 查看 JDK 版本
hadoop version # 查看 Hadoop 版本
scala -version # 查看 Scala 版本
spark-shell --version # 查看 Spark 版本常見問題
部署失敗,報錯“The specified InstanceType is not available”
原因:所選ECS執行個體規格在指定可用性區域中沒有庫存。
解決方案:
更換交換器所在的可用性區域後重新部署。
在Elastic Compute Service定價確認目標可用性區域的可用規格。
Spark 對記憶體需求較高,建議至少選擇 2 核 4 GiB 及以上規格。
部署成功但無法訪問 SparkWebSiteURL
按以下順序排查:
確認安全性群組入方向規則已允許存取 TCP 8088 和 8080 連接埠,規則添加方式參見使用安全性群組。
訪問 ECS控制台-執行個體,進入執行個體詳情頁,確認彈性公網 IP 已成功綁定到執行個體。
串連ECS執行個體後,確認 Spark 進程與連接埠監聽狀態:
# 檢查 Spark 進程 ps -ef | grep spark # 檢查 8080 連接埠監聽 netstat -tlnp | grep 8080 # 手動啟動 Spark(如未運行) $SPARK_HOME/sbin/start-all.sh若 Spark 服務未安裝完成,執行
cat /var/log/messages | grep cloud-init查看執行個體自訂資料(UserData)指令碼的執行日誌,定位安裝過程中的失敗原因。
如何部署 Spark 叢集版
方案:ROS提供了 Spark 叢集版公用模板,支援部署多節點Spark叢集:
在ROS控制台 > 公用模板 中搜尋"Spark叢集版",找到Spark叢集版(已有VPC)。
該模板會建立多台ECS執行個體(1個Master + N個Worker),自動設定叢集通訊
部署前建議先刪除單機版資源棧,避免資源衝突
想要瞭解更多資源部署問題,可以查詢常見問題合集。