Apache Spark 基礎架構 - 結合運算與儲存節點

Apache Spark 基礎架構 - 結合運算與儲存節點

我有一個關於 Apache Spark 的基礎設施問題,我正在考慮在一個綠地項目中推出該項目,在任何給定時間使用(最多)大約 4 TB 的資料進行建模。應用領域將是分析,模型的訓練可能會在一夜之間批量完成,而不是即時完成。

傳統的三層應用程式將工作負載的資料庫端和應用程式端分開,這意味著可以優化兩個不同的伺服器來分別執行儲存和運算任務。這使得建置系統變得很容易,因為各種提供者(例如戴爾例如)有針對每個應用程式最佳化的產品。

像 Spark 這樣的新框架似乎結合了兩個方面,以避免在節點之間移動資料 - 以及由此導致的網路負載 - 但我想知道這在基礎設施層級是如何運作的。

人們是否將大量儲存和運算能力結合在一台機器中?對於我的應用程式來說,標準系統拓撲是什麼樣的?最後,有沒有既提供高儲存密度又提供良好運算能力的刀鋒伺服器?

理想情況下,我希望使用不超過 5 個節點,但我不知道有任何指導資源可以幫助規劃這樣的實施。在這方面有任何建議表示讚賞。

答案1

我將回答我自己的問題,因為我已經找到了一些資源,但是我也會標記任何高品質的答案,這些答案也將作為答案,所以請隨意貢獻。也非常歡迎對我的想法發表評論。

連結有一些關於為 Spark 配置硬體的信息,據我所知,您基本上可以將 Spark 視為三層堆疊中的應用程式層。因此,您可以在儲存節點上執行(例如)Cassandra 或 HBase,並將 Spark 保留在具有更強 CPU 和記憶體但可用儲存較少的「應用程式」節點上。節點之間的 10 Gbps 乙太網路聽起來在這些用例中很重要。

我想這提出了一個問題,即考慮到您最終可能仍然從 Hbase 資料庫中串流傳輸資料來進行處理,如何對非常大的資料集進行處理,但我認為這可以歸結為應用程式架構,因此它將不屬於本網站的範圍。

相關內容