如何切換鼠標(如何切換鼠標模式)
1041
2025-03-31
講一下Spark的幾種部署方式
目前,除了local模式為本地調試模式以為, Spark支持三種分布式部署方式,分別是standalone、spark on mesos和 spark on YARN
Standalone模式
即獨立模式,自帶完整的服務,可單獨部署到一個集群中,無需依賴任何其他資源管理系統。從一定程度上說,該模式是其他兩種的基礎。目前Spark在standalone模式下是沒有任何單點故障問題的,這是借助zookeeper實現的,思想類似于Hbase master單點故障解決方案。將Spark standalone與MapReduce比較,會發現它們兩個在架構上是完全一致的:
都是由master/slaves服務組成的,且起初master均存在單點故障,后來均通過zookeeper解決(Apache MRv1的JobTracker仍存在單點問題,但CDH版本得到了解決);
各個節點上的資源被抽象成粗粒度的slot,有多少slot就能同時運行多少task。不同的是,MapReduce將slot分為map slot和reduce slot,它們分別只能供Map Task和Reduce Task使用,而不能共享,這是MapReduce資源利率低效的原因之一,而Spark則更優化一些,它不區分slot類型,只有一種slot,可以供各種類型的Task使用,這種方式可以提高資源利用率,但是不夠靈活,不能為不同類型的Task定制slot資源。總之,這兩種方式各有優缺點。
Spark On YARN模式
spark on yarn 的支持兩種模式:
yarn-cluster:適用于生產環境;
yarn-client:適用于交互、調試,希望立即看到app的輸出
yarn-cluster和yarn-client的區別在于yarn appMaster,每個yarn app實例有一個appMaster進程,是為app啟動的第一個container;負責從ResourceManager請求資源,獲取到資源后,告訴NodeManager為其啟動container。yarn-cluster和yarn-client模式內部實現還是有很大的區別。如果你需要用于生產環境,那么請選擇yarn-cluster;而如果你僅僅是Debug程序,可以選擇yarn-client。
Spark On Mesos模式
Spark運行在Mesos上會比運行在YARN上更加靈活,更加自然。目前在Spark On Mesos環境中,用戶可選擇兩種調度模式之一運行自己的應用程序
粗粒度模式(Coarse-grained Mode):每個應用程序的運行環境由一個Dirver和若干個Executor組成,其中,每個Executor占用若干資源,內部可運行多個Task(對應多少個“slot”)。應用程序的各個任務正式運行之前,需要將運行環境中的資源全部申請好,且運行過程中要一直占用這些資源,即使不用,最后程序運行結束后,回收這些資源。
細粒度模式(Fine-grained Mode):鑒于粗粒度模式會造成大量資源浪費,Spark On Mesos還提供了另外一種調度模式:細粒度模式,這種模式類似于現在的云計算,思想是按需分配。與粗粒度模式一樣,應用程序啟動時,先會啟動executor,但每個executor占用資源僅僅是自己運行所需的資源,不需要考慮將來要運行的任務,之后,mesos會為每個executor動態分配資源,每分配一些,便可以運行一個新任務,單個Task運行完之后可以馬上釋放對應的資源。
spark Yarn
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。