在管理程式/工作模式建置 Apache Spark 叢集
Apache Spark 是用於資料分析的開放原始碼叢集計算架構。Oracle Cloud Infrastructure 提供可靠的高效能平台,可用來執行和管理 Apache Spark 型大數據應用系統。
架構
此架構會使用管理程式/工作者模型在 Oracle Cloud Infrastructure 上部署 Apache Spark 叢集。它有一個在運算執行處理上執行的管理程式節點和三個工作節點。
下圖說明此參考架構。

spark-oci-png.png 圖解說明
架構包含下列元件:
- 區域
Oracle Cloud Infrastructure 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,而且大型距離可以區隔 (跨國家或甚至洲)。
- 可用性網域
可用性網域是區域內獨立的獨立資料中心。每個可用性網域中的實體資源都會與其他可用性網域中的資源隔離,以提供容錯。可用性網域不會共用基礎架構,例如電源、冷卻或內部可用性網域網路。因此,一個可用性網域的失敗並不會影響區域中的其他可用性網域。
- 容錯域
容錯域是一組可用性網域內的硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分配到多個容錯域時,應用程式可能會容許容錯域內的實體伺服器故障、系統維護和電源故障。
- 虛擬雲端網路 (VCN) 和子網路
VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。VCN 就像傳統資料中心網路一樣,可讓您完全控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,供您在建立 VCN 之後變更。您可以將 VCN 區隔為子網路,子網路範圍可為區域或可用性網域。每個子網路均包含一個未與 VCN 中其他子網路重疊的連續位址範圍。您可以在建立子網路之後變更子網路的大小。子網路可以是公用或專用。
- Apache Spark 管理程式和工作程式
代管 Apache Spark 管理程式的運算執行處理會連附至區域公用子網路。工作連附至區域專用子網路。
- 區塊儲存
透過區塊儲存磁碟區,您可以建立、連附、連線及移動儲存體磁碟區,以及變更磁碟區效能以符合您的儲存體、效能和應用程式需求。將磁碟區連附並連線至執行處理之後,您可以使用磁碟區,例如一般硬碟。您也可以中斷磁碟區的連線,然後將它連附至另一個執行處理,而不會遺失資料。
為此架構提供的 Terraform 快速啟動樣板會為每個工作節點佈建 700-GB 區塊磁碟區。建置架構時,您可以選擇區塊磁碟區的數目和大小。
架構使用 iSCSI (TCP/IP 型標準) 在磁碟區與連附的執行處理之間進行通訊。
- 網路閘道
網際網路閘道可讓 VCN 中的公用子網路與公用網際網路之間的流量。
- 網路位址轉譯 (NAT) 閘道
NAT 閘道可讓 VCN 中的專用資源存取網際網路上的主機,而不會將這些資源暴露給內送網際網路連線。
建議
您的需求可能會與此處描述的架構不同。使用下列建議作為起點。
- VCN
建立 VCN 時,請根據計畫連附至 VCN 中子網路的資源數目,判斷所需的 CIDR 區塊數目和各個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。
選取未與您想要設定專用連線的任何其他網路 (在 Oracle Cloud Infrastructure、內部部署資料中心或其他雲端提供者中) 重疊的 CIDR 區塊。
建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。
設計子網路時,請考量您的流量和安全需求。將特定層或角色內的所有資源連附至可作為安全界限的相同子網路。
使用區域子網路。
- 運算資源配置
此架構使用 Oracle Linux 7。7 作業系統映像檔搭配管理程式和工作節點的 VM.Standard2.1 資源配置。如果您的應用程式需要更多記憶體、核心或網路頻寬,您可以選擇不同的資源配置。
- Apache Spark 和 Hadoop
雖然 Apache Spark 可以在此架構中單獨執行,但仍會在 Hadoop 上執行。
在此架構中,會將單一管理程式節點和三個工作節點建置為 Apache Spark 叢集的一部分。
- 安全性
-
使用 Oracle Cloud Guard 主動監督及維護您在 Oracle Cloud Infrastructure 中的資源安全。「雲端保全」使用可定義的偵測器方法來檢查安全弱點的資源,以及監督操作員和使用者是否有風險活動。偵測到任何組態錯誤或不安全的活動時,雲端保全會建議更正動作,並根據您可以定義的回應器方法來協助採取這些動作。
-
對於需要最高安全性的資源,Oracle 建議您使用安全區域。安全區域是與以最佳做法為基礎之 Oracle 定義的安全原則方法關聯的區間。例如,安全區域中的資源不得從公用網際網路存取,且必須使用客戶管理的金鑰加密。當您在安全區域中建立及更新資源時,Oracle Cloud Infrastructure 會根據 security-zone 處方中的原則驗證作業,並拒絕違反任何原則的作業。
-
考量
- 效能
請考慮在管理程式和工作節點的運算執行處理使用裸機資源配置。您可以在裸機 Spark 叢集上執行大數據應用系統,以獲得重大的效能優勢。
- 使用狀態
容錯域可在單一可用性網域內提供最佳復原能力。您可以在多個可用性網域中部署執行相同作業的運算執行處理。此設計會透過簡介冗餘來移除單點失敗。
您也可以考慮建立額外的 Spark 管理程式節點作為備份,以獲得高可用性。
- 擴展性
您可以使用執行處理集區和自動調整功能來調整應用程式規模。
- 您可以使用執行處理集區,根據相同區域中的相同組態佈建及建立多個運算執行處理。
- 自動調整可讓您根據 CPU 使用量之類的效能測量結果,自動調整執行處理集區中的運算執行處理數目。
- 儲存體
您可以使用 Oracle Cloud Infrastructure Object Storage 來儲存資料,而非區塊磁碟區。如果您使用物件儲存,請建立服務閘道以從專用子網路中的節點進行連線。
Oracle 也提供 Hadoop Distributed File System (HDFS) Connector for Oracle Cloud Infrastructure Object Storage。使用 HDFS 連線器時,您的 Apache Hadoop 應用程式可以讀取和寫入物件儲存體的資料。
- 管理功能
此架構使用 Terraform 建立基礎架構並部署 Spark 叢集。
您可以改用完全受管理的 Oracle Cloud Infrastructure Data Flow 服務,以提供豐富的使用者介面,讓開發人員和資料科學家無須叢集、作業團隊或高度專業的 Spark 知識即可隨時建立、編輯及執行 Apache Spark 應用程式。完全受管理的服務沒有可部署或管理的基礎架構。
- 安全性
您可以使用原則來限制誰可以存取您的 Oracle Cloud Infrastructure 資源,以及他們可以執行的動作。
建置
GitHub 中提供部署此參照架構所需的程式碼。只要按一下即可將程式碼提取至 Oracle Cloud Infrastructure Resource Manager,建立堆疊並加以部署。或者,從 GitHub 下載程式碼到您的電腦、自訂程式碼,以及使用 Terraform CLI 建置架構。
- 使用 Oracle Cloud Infrastructure Resource Manager 進行部署:
- 按一下

如果您尚未登入,請輸入租用戶和使用者證明資料。
- 複查並接受條款與條件。
- 選取要建置堆疊的區域。
- 依照畫面上的提示和指示建立堆疊。
- 建立堆疊之後,請按一下 Terraform 動作,然後選取計畫。
- 等待工作完成,然後複查計劃。
若要進行任何變更,請返回「堆疊詳細資訊」頁面,按一下編輯堆疊,然後進行必要的變更。然後,再次執行「計劃」動作。
- 如果不需要進一步的變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取套用。
- 按一下
- 使用 Terraform CLI 部署:
- 前往 GitHub。
- 將儲存區域複製或下載到您的本機電腦。
- 依照
README文件中的指示進行。