爲何咱們生產上要選擇Spark On Yarn?shell
開發上咱們選擇local[2]模式
生產上跑任務Job,咱們選擇Spark On Yarn模式 ,緩存
將Spark Application部署到yarn中,有以下優勢:分佈式
1.部署Application和服務更加方便ide
- 只須要yarn服務,包括Spark,Storm在內的多種應用程序不要要自帶服務,它們經由客戶端提交後,由yarn提供的分佈式緩存機制分發到各個計算節點上。
2.資源隔離機制spa
- yarn只負責資源的管理和調度,徹底由用戶和本身決定在yarn集羣上運行哪一種服務和Applicatioin,因此在yarn上有可能同時運行多個同類的服務和Application。Yarn利用Cgroups實現資源的隔離,用戶在開發新的服務或者Application時,不用擔憂資源隔離方面的問題。
3.資源彈性管理orm
- Yarn能夠經過隊列的方式,管理同時運行在yarn集羣種的多個服務,可根據不一樣類型的應用程序壓力狀況,調整對應的資源使用量,實現資源彈性管理。
Spark On Yarn有兩種模式,一種是cluster模式,一種是client模式。隊列
運行client模式:進程
- 「./spark-shell –master yarn」
- 「./spark-shell –master yarn-client」
- 「./spark-shell –master yarn –deploy-mode client」
運行的是cluster模式資源
- 「./spark-shell –master yarn-cluster」
- 「./spark-shell –master yarn –deploy-mode cluster」
client和cluster模式的主要區別:a. client的driver是運行在客戶端進程中b. cluster的driver是運行在Application Master之中開發