
396
|
第九章:在 Spark 上使用深度學習與 DL4J
透過 YARN 運行 Spark
YARN 是一種 Hadoop API,提供給一般用途的應用程式,好讓程式可以像 MapReduce
一樣,做為第一等公民來運行。目前 YARN 實作的 Spark 可支援兩種執行 Spark job 的
模式:
• yarn- 客戶端(client)
• yarn- 集群(cluster)
YARN 應用程序包含了
ApplicationMaster
與
NodeManager
這兩個概念。
YARN、ApplicationMaster 與 NodeManager
ApplicationMaster 會追蹤Hadoop 集群中特定job 的資源與執行情況。
NodeManager 則會配置 YARN 容器(container), 讓 job 裡的 task 於容器中運
行。本節的目的並不是要介紹更多分散式系統的術語,讓你感到更加混淆,而
是想要提供一些背景知識,讓你更了解那些用於正式生產環境中的 Hadoop 集
群,其內部究竟是什麼狀況。
以 Spark 來說,我們可以看到 Spark 執行程序(executor)在 YARN 容器內部
運行,Spark 的 job 則是由 Spark ApplicationMaster 來進行調度。我們只是希望
你能瞭解一下這些流程,以便能夠更瞭解系統何時在何處如何運行 Spark job。
每個 Spark 執行程序都是以 YARN 容器的形式來運行的
4
。Spark 會在同一個容器中託管 ...