Apache Hadoop Yarn與Kubernetes比較選擇 - codehunter

banq發表於2022-01-14

Kubernetes用於將 Docker 容器核心擴充套件為一個平臺。Kubernetes 開發採用自下而上的方法。它在指定每個容器/pod 資源需求方面有很好的最佳化,但它缺乏一個有效的全域性排程程式,可以將資源劃分為邏輯分組。Kubernetes 設計允許多個排程程式在叢集中執行。每個排程程式都在自己的 pod 中管理資源。
但是,當應用程式需要的資源超出物理系統的處理能力時,Kubernetes 叢集可能會受到不穩定的影響。
Kubernetes 安全性預設是開放的,除非 RBAC 定義了細粒度的角色繫結。為 pod 正確設定了安全上下文。如果省略,pod 的主要組將預設為 root,這對於試圖保護基礎架構的系統管理員來說可能是個問題。
Apache Hadoop YARN 被開發用於執行隔離的 Java 程式來處理大資料工作負載,然後改進以支援 Docker 容器。
YARN 提供全域性級別的資源管理,例如將物理資源劃分為邏輯單元的容量佇列。可以為每個業務單位分配一定百分比的叢集資源。容量資源共享系統旨在保證企業優先順序的資源可用性,而不是擠壓所有可用的物理資源。YARN 確實在安全性方面得分更高。Kerberos 中有更多的安全特性、特權/非特權容器的訪問控制、受信任的 docker 映像和放置策略約束。
大多數 docker 相關的安全性預設關閉,系統管理員需要手動開啟標誌以授予容器更多的權力。
與 Kubernetes 相比,大型企業更傾向於執行 Hadoop,因為保護系統成本更低。
還有更多基於 YARN 構建的分散式 SQL 引擎,包括 Hive、Impala、SparkSQL 和 IBM BigSQL。
資料庫選項使 YARN 成為一個有吸引力的選項,因為它能夠在容器中執行線上事務處理,以及使用批處理工作負載進行線上分析處理。
adoop Developer 工具鏈可能會讓人不知所措。Mapreduce、Hive、Pig、Spark等,各有各的開發風格。使用者體驗不一致,需要一段時間才能全部瞭解。相比之下,Kubernetes 感覺不那麼礙事,因為它只部署 docker 容器。透過引入 YARN 服務來執行 Docker 容器工作負載,YARN 可以感覺不如 Kubernetes 囉嗦。
 

如果您的計劃是將 IT 運營外包給公共雲,請選擇 Kubernetes。如果您的計劃是構建私有/混合/多雲,請選擇 Apache YARN。
 

人們選擇在 kubernetes 上執行 Spark 的最大原因:
Yarn 只是一種資源共享機制,而 Kubernetes 是一個完整的平臺,包括 ConfigMaps、宣告性環境管理、秘密管理、卷掛載、一個設計得非常好的 API 用於與所有這些東西互動、基於角色的訪問控制、並且 Kubernetes 得到廣泛使用,這意味著人們可以很容易地找到要僱用的候選人和要購買的工具。

相關文章