Spark運行模式詳解

Spark概述

在這里插入圖片描述

Spark 可以在多種不同的運行模式下執行,每種模式都有其自身的特點和適用場景。

部署Spark集群大體上分為兩種模式:單機模式與集群模式。大多數分布式框架都支持單機模式,方便開發者調試框架的運行環境。但是在生產環境中,并不會使用單機模式。

Spark目前支持的部署模式。

  • (1)Local模式:在本地部署單個Spark服務

  • (2)Standalone模式:Spark自帶的任務調度模式。(國內不常用)

  • (3)YARN模式:Spark使用Hadoop的YARN組件進行資源與任務調度。(國內最常用)
    在這里插入圖片描述

  • (4)Mesos模式:Spark使用Mesos平臺進行資源與任務的調度。(國內很少用)

1.Local 模式

  • 在本地模式下,Spark 將在單個 JVM 進程中運行,通常用于開發、測試和小規模數據處理。
  • 在本地模式下,Spark 不需要啟動集群,而是直接在本地計算機上執行任務。

2.YARN 模式(常用)

  • YARN(Yet Another Resource Negotiator)
    是 Apache Hadoop 的資源管理器,可以用來在 Hadoop 集群上管理資源和調度任務。

  • Spark 可以作為 YARN 上的一個應用程序運行,在 YARN 模式下,Spark 將利用 YARN 來管理集群資源和調度任務。

在 Spark 中,YARN 模式下有兩種常見的運行模式:yarn-client 和 yarn-cluster。它們的主要區別在于 Driver 程序的運行節點。
在這里插入圖片描述

(1)yarn-client模式

  • yarn-client 模式下,Driver 程序運行在提交 Spark 應用程序的客戶端機器上。
  • 這意味著 Driver 程序直接與 YARN ResourceManager 通信,并向其請求資源并啟動 ApplicationMaster。
  • 一旦 ApplicationMaster 啟動成功,它會協調在 YARN 集群中啟動的 Executor 進程,并與它們通信以執行任務。

yarn-client 模式的優點是方便調試和監控,因為 Driver 程序直接運行在客戶端機器上,可以直接查看其日志并與其交互。
然而,由于 Driver 程序運行在客戶端機器上,它可能會成為性能瓶頸,尤其是當客戶端機器的資源有限時。

(2)yarn-cluster 模式:

  • yarn-cluster模式下,Driver 程序運行在 YARN 集群中作為一個獨立的應用程序。
  • 當用戶提交 Spark 應用程序時,Driver 程序會作為一個 YARN ApplicationMaster 啟動在集群中,并由 YARN ResourceManager 分配資源。
  • 一旦 ApplicationMaster 啟動成功,它會協調在集群中啟動的 Executor 進程,并與它們通信以執行任務。

yarn-cluster 模式的優點是可以更好地利用集群資源,并且 Driver 程序不會成為單點故障。

因為 Driver 程序運行在集群中,所以即使客戶端機器宕機也不會影響 Spark 應用程序的執行。

但是,調試和監控會稍微復雜一些,因為 Driver 程序運行在集群中,需要查看集群中的日志和監控信息。

yarn-client 模式適用于調試和監控要求較低、資源較為充足的情況,而 yarn-cluster 模式適用于對資源利用率和容錯性要求較高的情況


3.Standalone 模式

  • Spark 的獨立模式是一種簡單的集群管理器,可以用來在獨立的 Spark 集群上運行應用程序。在這種模式下,用戶需要手動啟動和管理 Spark 集群中的各個組件,如主節點和工作節點。
  • Standalone模式是Spark自帶的資源調度引擎,構建一個由Master + Worker構成的Spark集群,Spark運行在集群中。
  • 這個要和Hadoop中的Standalone區別開來。這里的Standalone是指只用Spark來搭建一個集群,不需要借助Hadoop的Yarn和Mesos等其他框架。
    在這里插入圖片描述

4.Apache Mesos 模式:

  • Apache Mesos 是一個通用的集群管理器,可以用來管理多種類型的工作負載,包括 Spark 應用程序。
  • 在 Mesos 模式下,Spark 可以作為 Mesos 上的一個框架運行,利用 Mesos 提供的資源管理和調度功能來運行任務。
  • Spark客戶端直接連接Mesos;不需要額外構建Spark集群。國內應用比較少,更多的是運用Yarn調度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/16177.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/16177.shtml
英文地址,請注明出處:http://en.pswp.cn/web/16177.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件web化的趨勢

引言 在信息技術飛速發展的今天,軟件Web化已成為一個不可忽視的趨勢。所謂軟件Web化,即將傳統的桌面應用軟件轉變為基于Web的應用程序,使用戶能夠通過瀏覽器進行訪問和使用。傳統軟件通常需要在用戶的計算機上進行安裝和運行,而W…

Cadence OrCAD學習筆記(3)capture使用技巧_1

本期介紹capture的一些使用技巧。資料來源于小破站up主硬小二 1、導出像Visio規格的圖紙 2、全局修改元件屬性 然后保存、關閉即可。 3、導出BOM 4、導出網表 5、元件自動編號 6、capture軟件和allegro關聯 7、新建原理圖symbol 以上為添加封裝庫的路徑 如果要創建多部分的sy…

積累|新質生產力之地方發展的不同賽道

“不要搞一種模式”。任何事物都是共性和個性的統一,也就是矛盾普遍性和特殊性的統一。就發展新質生產力而言,既要遵循新質生產力的普遍規律和共同特征,又要充分考慮各地、各產業的實際情況和特殊性,準確把握共性與個性。 總述 …

神器EasyRecovery2024中文電腦版下載!讓數據恢復不再難

在數字化時代,數據就是我們的財富。無論是重要的工作報告,還是那些珍貴的生活瞬間照片,或是我們與朋友間的聊天記錄,都儲存在我們的電腦或手機中。然而,有時候,意外總是突如其來,電腦突然崩潰&a…

C++Qt操作Lotus Domino數據庫 Lotus Domino C++連接Lotus Domino C++快速開發Lotus Domino

java連接domino C#連接domino python連接domino go連接domino,delphi連接domino Excel連接domino Flutter、微信小程序連接domino C 操作 Lotus Domino 數據庫:自動化與效率的結合 引言 在企業級應用中,Lotus Domino 提供了一個強大的協作平臺&#xff0…

【Linux】TCP協議【下一】{三次握手/四次揮手的深度解讀==狀態變化}

文章目錄 本篇知識需要有TCP協議【中】的知識!詳情點擊👇1.測試一:服務器start函數不定義任何行為(不調用accept)的三次握手狀態變化int listen(int sockfd, int backlog);的backlog參數全連接隊列當全連接隊列已滿&am…

BGP策略實驗(路徑屬性和選路規則)

要求: 1、使用preval策略,確保R4通過R2到達192.168.10.0/24 2、使用AS Path策略,確保R4通過R3到達192.168.11.0/24 3、配置MED策略,確保R4通過R3到達192.168.12.0/24 4、使用Local Preference策略,確保R1通過R2到達19…

Python輕松玩轉excel操作指導

目錄 一、一圖概覽 二、表格操作 三、內容操作 四、單元格操作 五、Pandas實現表格操作 六、常見場景示例 一、一圖概覽 ? ?本文主要對openpyxl庫的常用表格操作進行了梳理,熟練的運用后可極大地提升工作效率。 二、表格操作 #創建一個表格sheet.xlsx #…

LINQ(四) ——使用LINQ進行對象類型初始化

總目錄 C# 語法總目錄 上一篇:LINQ(三) ——查詢表達式/into關鍵字 LINQ 四 ——使用LINQ進行對象類型初始化 6. 使用LINQ進行對象初始化6.1 對象類型 6. 使用LINQ進行對象初始化 6.1 對象類型 需要聲明定義一個對象類,然后使用select 配合new關鍵字進…

C++編程揭秘:虛表機制與ABI兼容性的實例剖析

前言: 假設你的應用程序引用的一個庫某天更新了,雖然 API 和調用方式基本沒變,但你需要重新編譯你的應用程序才能使用這個庫,那么一般說這個庫是源碼兼容(Source compatible);反之,如…

C語言指針相關知識(第五篇章)(非常詳細版)

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、sizeof和strlen對比二、數組之間的比較(依據strlen和sizeof來呈現)(一)、一維整型數組(二&#…

Value-Based Reinforcement Learning(2)

Temporal Difference (TD) Learning 上節已經提到了如果我們有DQN,那么agent就知道每一步動作如何做了,那么DQN如何訓練那?這里面使用TD算法。 簡略分析: 是的估計 是的估計 所以: Deep Re…

對vue3/core源碼ref.ts文件API的認識過程

對toRef()API的認識的過程: 最開始認識toRef()是從vue3源碼中的ref.ts看見的,右側GPT已經舉了例子 然后根據例子,在控制臺輸出ref對象是什么樣子的: 這就是ref對象了,我們根據對象中有沒有__v_isRef來判斷是不是一個ref對象,當對象存在且__v_isRef true的時候他就判定為是一個…

Linux-組管理和權限管理

1 Liunx組的基本介紹: 在Linux中的每個用戶必須屬于一個組,不能獨立于組外。在Linux中每個文件都有所有者、所在組、其他組的概念 所有者所在組其它組改變用戶所在的組 2 文件/目錄的所有者 一般文件的創建者,誰創建了該文件,就…

Docker in Docker(DinD)原理與實踐

隨著云計算和容器化技術的快速發展,Docker作為開源的應用容器引擎,已經成為企業部署和管理應用程序的首選工具。然而,在某些場景下,我們可能需要在Docker容器內部再運行一個Docker環境,即Docker in Docker(…

002 CentOS 7.9 redis-7.2.5安裝及配置

https://github.com/redis/redis https://redis.io/insight/#insight-form 安裝及配置 在CentOS 7.9上安裝和配置Redis 7.2.5版本,可以遵循以下詳細步驟: 一、準備工作 確保安裝包已準備好: 確認您已經下載了redis-7.2.5.tar.gz安裝包&a…

從程序被SQL注入來MyBatis 再談 #{} 與 ${} 的區別

緣由 最近在的一個項目上面,發現有人在給我搞 SQL 注入,我真的想說我那么點資源測試用的阿里云服務器,個人估計哈,估計能抗住他的請求。狗頭.png 系統上面的截圖 數據庫截圖 說句實在的,看到這個之后我立馬就是在…

游戲找不到d3dcompiler_43.dll怎么辦,教你5種可靠的修復方法

在電腦使用過程中,我們經常會遇到一些錯誤提示,其中之一就是“找不到d3dcompiler43.dll”。這個問題通常出現在游戲或者圖形處理軟件中,它會導致程序無法正常運行。為了解決這個問題,我經過多次嘗試和總結,找到了以下五…

idea2023的git從dev分支合并到主分支master

1.本地項目切換到主分支master 右鍵項目-git-Branches 依次點擊項目-Remote-Origin-master-CheckOut 現在你的idea中的這個項目就是遠程master分支的代碼了。 2.合并dev分支到master 右擊項目-git-Merge 選擇origin-dev 點擊Merge按鈕,此時只是合并到本地的maste…

每日一題---有效的括號問題

文章目錄 前言1.題目以及分析2.參考代碼 前言 前面我們學習了棧的相關操作,現在我們做一道題,進行鞏固 Leetcode—有效的括號 1.題目以及分析 這道題就可以使用棧進行操作,因為把最左邊的括號當成棧底,最右邊的是棧頂&#xff0c…