Spark 的運行模式(--master) 和 部署方式(--deploy-mode)

Spark 的?運行模式(--master?和?部署方式(--deploy-mode,兩者的核心區別在于?資源調度范圍?和?Driver 進程的位置

一、核心概念對比

維度--master(運行模式)--deploy-mode(部署方式)
作用指定 Spark 應用在哪里運行(單機 / 集群 / 云平臺)。指定 Driver 進程的運行位置(本地客戶端 / 集群節點)。
選項范圍- 單機:local?/?local[N]?/?local[*]
- 集群:yarn?/?spark://host:port?/?mesos
僅當?--master?為?集群模式?時有效:
-?client(客戶端部署)
-?cluster(集群部署)
是否必填是(決定應用的運行環境)。否(默認值:client,僅在集群模式下需顯式指定)。

二、--master?運行模式詳解

1. 單機模式(Local Mode)

適用場景:開發調試、本地測試(無需真實集群資源)。

  • local
    • 單線程運行,所有任務在一個線程中串行執行(無并行)。
    • 示例--master local
  • local[N]
    • 使用?N 個線程?模擬集群中的 Executor,并行執行任務(N 通常為 CPU 核心數)。
    • 示例--master local[2](2 個線程并行)。
  • local[*]
    • 使用?所有可用 CPU 核心?線程(自動獲取本地 CPU 核數)。

特點

  • 無需啟動集群服務,直接在本地 JVM 中運行。
  • Driver 和 Executor 都在同一個進程內,適合驗證代碼邏輯。
2. 集群模式(Cluster Mode)

適用場景:生產環境(需調度真實集群資源)。
常見集群模式包括:

  • yarn:運行在 Hadoop YARN 集群上(最常用的企業級方案)。
  • spark://host:port:運行在 Spark 自帶的獨立集群(Standalone Cluster)。
  • mesos:運行在 Mesos 集群上(較少用)。

特點

  • 需要提前啟動集群服務(如 YARN 的 ResourceManager、Spark Standalone 的 Master 節點)。
  • 資源由集群統一管理,支持多應用并發運行。

三、--deploy-mode?部署方式詳解(僅集群模式有效)

當?--master?設置為集群模式(如?yarn?或?spark://...)時,需通過?--deploy-mode?指定?Driver 進程的位置

1. client 部署(默認)
  • Driver 運行位置:提交任務的客戶端節點(如你本地的終端或服務器)。

????????????????????????????????????????Driver 進程運行在提交作業的客戶端機器上

  • 適用場景
    • 交互式任務(如 Spark Shell)或需要實時查看日志的調試場景。
    • Driver 需要與客戶端進行交互(例如接收用戶輸入)。
  • 優缺點
    • 優點:日志直接輸出到客戶端,方便調試。
    • 缺點:若客戶端斷開連接,任務會終止;Driver 占用客戶端資源。

示例(YARN 集群 + client 部署):

spark-submit --master yarn --deploy-mode client ...
2. cluster 部署
  • Driver 運行位置:集群內部的某個節點(由集群調度分配)。

?????????????????????????????????????Driver 進程運行在集群的某個 Worker 節點上。

  • 適用場景:生產環境的長時間運行任務(如定時批處理)。
  • 優缺點
    • 優點:任務提交后客戶端可斷開連接,Driver 獨立運行在集群中,穩定性高。
    • 缺點:日志需通過集群命令(如?yarn logs)查看,調試不如?client?方便。

示例(YARN 集群 + cluster 部署):

spark-submit --master yarn --deploy-mode cluster ...

四、經典場景搭配

場景--master?配置--deploy-mode?配置說明
本地調試local[2]無需指定(單機模式不生效)使用 2 個線程模擬并行,直接在本地運行,日志打印到終端。
YARN 集群調試(需看日志)yarnclientDriver 運行在提交任務的客戶端(如服務器),日志實時輸出到終端。
YARN 集群生產任務yarnclusterDriver 運行在集群節點,任務提交后客戶端可斷開,適合無人值守任務。
Spark 獨立集群任務spark://master-host:7077cluster(推薦)Driver 在集群內部,資源由 Spark Standalone 管理。

五、常見誤區

  1. 單機模式下無需?--deploy-mode

    • 單機模式(local)中,Driver 和 Executor 都在本地,--deploy-mode?無效,指定會報錯。
  2. 集群模式必須選?deploy-mode

    • 若?--master?是?yarn?或?spark://...,必須顯式指定?--deploy-mode client?或?cluster(默認是?client,但生產環境建議顯式寫?cluster)。
  3. local?不是集群

    • local?模式是?偽分布式(模擬集群行為),實際沒有真正的集群節點,僅用于開發測試。

總結記憶法

  • --master?決定 “在哪跑”:選本地(local)或集群(yarn/spark://...)。
  • --deploy-mode?決定 “Driver 在哪”:集群模式下,選客戶端(client)或集群內(cluster)。
  • 開發調試用?local?或?yarn client生產任務用?yarn cluster?或?spark://... cluster

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

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

相關文章

sqli—labs第八關——布爾盲注

一:確定注入類型 按照我們之前的步驟來 輸入 ?id1 and 11-- ?id1 and 12-- 界面正常 第二行界面異常空白 所以注入類型為單引號閉合型 二: 布爾盲注 1.判斷是否使用條件 (1):存在注入但不會直接顯示查詢結果 …

ARP 原理總結

🌐 一、ARP 原理總結 ARP(Address Resolution Protocol)是用于通過 IP 地址解析 MAC 地址的協議,工作在 鏈路層 與 網絡層之間(OSI 模型的第三層與第二層之間)。 🔁 ARP通信過程: …

SpringCloud——EureKa

目錄 1.前言 1.微服務拆分及遠程調用 3.EureKa注冊中心 遠程調用的問題 eureka原理 搭建EureKaServer 服務注冊 服務發現 1.前言 分布式架構:根據業務功能對系統進行拆分,每個業務模塊作為獨立項目開發,稱為服務。 優點: 降…

機頂盒刷機筆記

疑難雜癥解決 hitool線刷網口不通tftp超時--》關閉防火墻cm201-2卡刷所有包提示失敗abort install--》找個卡刷包只刷fastboot分區再卡刷就能通過了(cm201救磚包 (M8273版子)) 刷機工具 海兔燒錄工具HiTool-STB-5.3.12工具,需要…

Linux動靜態庫制作與原理

什么是庫 庫是寫好的現有的,成熟的,可以復用的代碼。現實中每個程序都要依賴很多基礎的底層庫,不可能每個人的代碼都從零開始,因此庫的存在意義非同尋常。 本質上來說庫是一種可執行代碼的二進制形式,可以被操作系統…

如何通過小智AI制作會說話的機器人玩具?

一、硬件準備與組裝 1. 核心硬件選擇 主控芯片:選擇支持無線網絡連接、音頻處理和可編程接口的嵌入式開發板 音頻模塊:配備拾音麥克風與小型揚聲器,確保語音輸入/輸出功能 顯示模塊:選擇適配的交互顯示屏用于可視化反饋 擴展模…

如何控制郵件發送頻率避免打擾用戶

一、用戶行為 監測用戶與郵件的互動數據,如打開率、點擊率下滑或退訂申請增多,可能是發送頻率過高的警示信號。利用郵件營銷平臺的分析工具,識別這些指標的變動趨勢,為調整提供依據。 二、行業特性與受眾差異 不同行業用戶對郵…

定積分的“偶倍奇零”性質及其使用條件

定積分的“偶倍奇零”性質是針對對稱區間上的奇偶函數積分的重要簡化方法。以下是其核心內容和應用要點: ?一、基本性質 ?偶函數(偶倍)? 若 f(x) 在 [?a,a] 上為偶函數(即 f(?x)f(x)),則: …

如何在 Windows 11 或 10 上安裝 Fliqlo 時鐘屏保

了解如何在 Windows 11 或 10 上安裝 Fliqlo,為您的 PC 或筆記本電腦屏幕添加一個翻轉時鐘屏保以顯示時間。 Fliqlo 是一款適用于 Windows 和 macOS 平臺的免費時鐘屏保。它也適用于移動設備,但僅限于 iPhone 和 iPad。Fliqlo 的主要功能是在用戶不活動時在 PC 或筆記本電腦…

【C/C++】C++并發編程:std::async與std::thread深度對比

文章目錄 C并發編程:std::async與std::thread深度對比1 核心設計目的以及區別2 詳細對比分析3 代碼對比示例4 適用場景建議5 總結 C并發編程:std::async與std::thread深度對比 在 C 中,std::async 和 std::thread 都是用于并發編程的工具&am…

Axure疑難雜癥:垂直菜單展開與收回(4大核心問題與專家級解決方案)

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝!如有幫助請訂閱專欄! Axure產品經理精品視頻課已登錄CSDN可點擊學習https://edu.csdn.net/course/detail/40420 課程主題:垂直菜單展開與收回 主要內容:超長菜單實現、展開與收回bug解釋、Axure9版本限制等問題解…

ASIC和FPGA,到底應該選擇哪個?

ASIC和FPGA各有優缺點。 ASIC針對特定需求,具有高性能、低功耗和低成本(在大規模量產時);但設計周期長、成本高、風險大。FPGA則適合快速原型驗證和中小批量應用,開發周期短,靈活性高,適合初創企…

DAY 30 模塊和庫的導入

知識點回顧: 1.導入官方庫的三種手段 2.導入自定義庫/模塊的方式 3.導入庫/模塊的核心邏輯:找到根目錄(python解釋器的目錄和終端的目錄不一致) 作業:自己新建幾個不同路徑文件嘗試下如何導入 import math # 導入…

MyBatis:動態SQL

文章目錄 動態SQLif標簽trim標簽where標簽set標簽foreach標簽include標簽和sql標簽 Mybatis動態SQL的官方文檔: https://mybatis.net.cn/dynamic-sql.html 動態SQL 動態SQL是 MyBatis的強大特性之一,如果是使用JDBC根據不同條件拼接sql很麻煩,例如拼接…

Java - Junit框架

單元測試:針對最小的功能單元(方法),編寫測試代碼對該功能進行正確性測試。 Junit:Java語言實現的單元測試框架,很多開發工具已經集成了Junit框架,如IDEA。 優點 編寫的測試代碼很靈活,可以指某個測試方法…

學生成績管理系統Java實戰(Spring Boot+MyBatis Plus)

文章目錄 一、系統需求分析(避坑指南)二、技術選型(2024新版)三、數據庫設計(三大核心表)1. 學生表(student)2. 課程表(course)3. 成績表(score&a…

MySQL安裝實戰指南:Mac、Windows與Docker全平臺詳解

MySQL作為世界上最流行的開源關系型數據庫,是每位開發者必須掌握的基礎技能。本指南將手把手帶你完成三大平臺的MySQL安裝,從下載到配置,每個步驟都配有詳細說明和截圖,特別適合新手學習。 一、Mac系統安裝MySQL 1.1 通過Homebre…

多模態大語言模型arxiv論文略讀(七十九)

AIM: Let Any Multi-modal Large Language Models Embrace Efficient In-Context Learning ?? 論文標題:AIM: Let Any Multi-modal Large Language Models Embrace Efficient In-Context Learning ?? 論文作者:Jun Gao, Qian Qiao, Ziqiang Cao, Zi…

[Harmony]封裝一個可視化的數據持久化工具

1.添加權限 在module.json5文件中添加權限 // 聲明應用需要請求的權限列表 "requestPermissions": [{"name": "ohos.permission.DISTRIBUTED_DATASYNC", // 權限名稱:分布式數據同步權限"reason": "$string:distrib…

利用html制作簡歷網頁和求職信息網頁

前言 大家好,我是maybe。今天下午初步學習了html的基礎知識。做了兩個小網頁,一個網頁是簡歷網頁,一個網頁是求職信息填寫網頁。跟大家分享一波~ 說明:我不打算上傳圖片。所以如果有朋友按照我的代碼運行網頁,會出現一個沒有圖片…