爲什麼我們生產上要選擇Spark On Yarn?
開發上我們選擇local[2]模式
生產上跑任務Job,我們選擇Spark On Yarn模式 ,
將Spark Application部署到yarn中,有如下優點:
1.部署Application和服務更加方便
- 只需要yarn服務,包括Spark,Storm在內的多種應用程序不要要自帶服務,它們經由客戶端提交後,由yarn提供的分佈式緩存機制分發到各個計算節點上。
2.資源隔離機制
- yarn只負責資源的管理和調度,完全由用戶和自己決定在yarn集羣上運行哪種服務和Applicatioin,所以在yarn上有可能同時運行多個同類的服務和Application。Yarn利用Cgroups實現資源的隔離,用戶在開發新的服務或者Application時,不用擔心資源隔離方面的問題。
3.資源彈性管理
- 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之中