使用 OKE 改善 Cassandra 和 Spark 活動的資料區域性

簡介

Apache Cassandra 是一個分散式無主控資料庫,每個節點都擁有權杖範圍。Apache Spark 是一種分散式運算引擎,可使用 Spark – Cassandra 連接器從 Cassandra 複本讀取。在 Kubernetes 中,無須瞭解資料在何處,即可排定 Pod,確保資料區域性。

本教學課程示範 OKE 如何使用 Kubernetes 原始類型改善區域性:StatefulSets (Cassandra 的穩定識別)、節點標籤以及關聯性 / 反相關性,以與 Cassandra Pod 共置 Spark 執行器 - 從同一個節點 (理想) 提供讀取,或者最差的情況是將一個躍點提供給共置複本。

目標

必備條件

  1. 按一下下方即可在 OCI 主控台中開啟堆疊:

    部署到 Oracle Cloud

  2. 遵循引導式流程進行:

  1. 堆疊完成之後,您將會在輸出區段中取得堡壘主機的 IP。

    堆疊輸出

工作 2:連線堡壘主機並驗證部署

初始基礎架構佈建會在 15 分鐘內完成,但完整設定 (透過堡壘主機的 cloud-init) 約需要 20 分鐘的時間來安裝 Helm、部署 Cassandra 和 Spark,然後執行讀取工作。

  1. 若要監督處理作業,請由 SSH 進入堡壘主機:

    ssh -i <path-to-private-key> opc@<bastion_public_ip>

  2. 執行下方命令以監督 cloudinit 命令檔的進度。

    tail -f /var/log/oke-automation.log

  3. 當您看到正在讀取的 3 個原始內建值 Cassandra 值和 Cloud-init 完成訊息時,堆疊就會完成。

    Cloud-init 完成

注意:Cloudinit 命令檔已經完成:

  1. 從堡壘主機 VM 確認現有的節點:

    kubectl get nodes

  2. 確認地區標籤。預期兩個節點的 spark-locality=truedata-locality=enabled

    kubectl get nodes --show-labels | grep -E 'spark-locality|data-locality'

  3. 驗證 Cassandra 位置:

    kubectl -n k8ssandra-operator get pods -l app.kubernetes.io/name=cassandra -o wide

  4. 驗證 Spark 位置:

    kubectl -n spark get pods -o wide

  5. 檢查 Spark 讀取工作日誌。您應該會看到來自 testks.users 的 3 筆記錄和成功執行。

    kubectl -n spark logs job/spark-read-cassandra --tail=20

提示:符合 Cassandra 和 Spark Pod 的 NODE 值,可確認共置和理想的地區條件。如需更多結論的「流程日誌」結果,請使用 cqlsh 將其他資料列插入 testks.users。較大的資料集將產生更多讀取流量,讓地區與非地區性的影響更容易觀察。

您可以在下方看到上述指令的範例輸出:

節點檢查

工作 3:使用 VCN 流程日誌監測網路效果

使用 VCN 流量日誌瞭解 Cassandra 流量在 Spark 讀取期間的流量。目前的自動化使用 Flannel (VXLAN),這會影響「流量日誌」可以查看的內容。

CNI 的變更內容

  1. 在工作者子網路上啟用流量日誌。

    在 OCI 主控台中,啟用 OKE 工作節點子網路的流量日誌。重新執行 (或等待) Spark 讀取工作以產生流量。

  2. 查詢流程日誌 (選擇符合您叢集的路徑)

如果使用此自動化 (Flannel/VXLAN):使用類似下列的進階查詢:

   search "<your-flow-log-OCID>"
   | where data.protocolName = 'UDP'
   | where data.destinationPort = <vxlan-port>

取代為實際的「流量日誌」資源 OCID,並將取代為您的覆疊所使用的連接埠 (在此實驗室中:14789,請參閱下方圖片) .

UDP 交通

如果您的叢集使用 NPN:

注意:流程日誌可能需要幾分鐘的時間才能擷取新項目。

關鍵考量

提供其他資源的連結。此區段為可選;如有需要請刪除。

確認

其他學習資源

docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center