spark的Standalone模式介紹

Apache Spark 的 Standalone 模式是其自帶的集群管理模式,無需依賴外部資源管理器(如 YARN 或 Mesos),可快速部署和運行 Spark 集群。以下是對 Standalone 模式的詳細介紹:

1. 核心組件

Master 節點
  • 集群的主控制器,負責資源分配和任務調度。
  • 管理 Worker 節點的注冊和狀態監控。
  • 接收客戶端提交的應用程序,并為其分配資源。
Worker 節點
  • 工作節點,負責執行具體的計算任務。
  • 向 Master 注冊并匯報可用資源(內存、CPU)。
  • 為應用程序啟動 Executor 進程。
Executor
  • 每個應用程序專屬的進程,負責執行具體的任務(Task)。
  • 持有應用程序的內存數據(如 RDD 緩存)。
Driver
  • 運行用戶編寫的 Spark 應用程序的主程序。
  • 負責將應用程序轉換為 DAG(有向無環圖),并提交給 Master 進行調度。

2. 工作流程

  1. 集群啟動
    啟動 Master 節點和多個 Worker 節點,Worker 自動向 Master 注冊。

  2. 應用提交
    用戶通過spark-submit命令提交應用,Driver 程序在客戶端或集群中啟動。

  3. 資源分配
    Driver 向 Master 請求資源(CPU 和內存),Master 通知 Worker 節點啟動 Executor。

  4. 任務執行
    Driver 將任務分發給 Executor 執行,Executor 將結果返回給 Driver。

  5. 資源釋放
    應用程序完成后,Executor 和資源被釋放。

3. 部署模式

Client 模式
  • Driver 在客戶端運行:適用于交互式作業(如 Spark Shell)。
  • 優點:便于調試,直接在本地看到輸出。
  • 缺點:客戶端與集群需保持網絡連接,否則作業會中斷。
Cluster 模式
  • Driver 在集群中的某個 Worker 節點運行:適用于生產環境。
  • 優點:作業提交后可斷開客戶端連接,提高可靠性。
  • 缺點:調試不便,日志需通過 Web UI 查看。

4. 快速部署

步驟 1:下載并解壓 Spark
wget https://downloads.apache.org/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz
tar -zxvf spark-3.3.2-bin-hadoop3.tgz
cd spark-3.3.2-bin-hadoop3
步驟 2:配置環境變量

編輯conf/spark-env.sh(如果不存在,復制模板cp conf/spark-env.sh.template conf/spark-env.sh):

export JAVA_HOME=/path/to/java
export SPARK_MASTER_HOST=master-node-ip
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=2g  # 每個Worker可用內存
export SPARK_WORKER_CORES=2    # 每個Worker可用CPU核心數
步驟 3:配置 Worker 節點

編輯conf/slaves(如果不存在,復制模板cp conf/slaves.template conf/slaves),添加 Worker 節點 IP:

worker1-ip
worker2-ip
...
步驟 4:啟動集群
# 在Master節點上執行
sbin/start-all.sh# 等價于分別啟動Master和Worker
sbin/start-master.sh
sbin/start-slaves.sh
步驟 5:查看 Web UI

訪問http://master-node-ip:8080查看集群狀態。

5. 提交應用程序

Client 模式示例
./bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://master-node-ip:7077 \--executor-memory 1g \--total-executor-cores 2 \examples/jars/spark-examples_2.12-3.3.2.jar \100

7. 優缺點

優點
  • 輕量級:無需額外依賴,部署簡單。
  • 快速啟動:相比 YARN,資源分配更直接。
  • 內置支持:Spark 原生支持,無需額外配置。
缺點
  • 功能有限:相比 YARN,缺乏多租戶支持和細粒度資源隔離。
  • 調度簡單:僅支持 FIFO 和公平調度,不支持更復雜的資源模型。
  • 生產環境建議:大型集群建議使用 YARN 或 Kubernetes。

總結

Standalone 模式適合快速搭建測試環境或小規模生產集群,提供了 Spark 最基本的集群管理能力。核心是理解 Master、Worker、Executor 和 Driver 的角色分工,以及 Client/Cluster 兩種部署模式的區別。對于大規模生產環境,建議考慮更成熟的資源管理器(如 YARN)。

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

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

相關文章

YOLOv7訓練時4個類別只出2個類別

正常是4個類別: 但是YOLOv7訓練完后預測總是只有兩個類別: 而且都是LFM和SFM 我一開始檢查了下特征圖大小,如果輸入是640*640的話,三個尺度特征圖是80*80,40*40,20*20;如果輸入是416*416的話,三個尺度特征…

【Unity】用事件廣播的方式實現游戲暫停,簡單且實用!

1.前言 在做Unity項目的時候,要考慮到“游戲暫停”的功能,最直接的辦法是修改游戲的Time.TimeScale 0f。但是這種方式的影響也比較大,因為它會導致游戲中很多程序無法正常運行。 于是我就有了一個想法,在游戲中想要暫停的對象&…

Suna: 開源多面手 AI 代理

GitHub:GitHub - kortix-ai/suna: Suna - Open Source Generalist AI Agent 更多AI開源軟件:發現分享好用的AI工具、AI開源軟件、AI模型、AI變現 - 小眾AI Suna 是一個完全開源的 AI 助手,可幫助您輕松完成實際任務。通過自然對話&#xff0c…

直接從圖片生成 html

1. 起因, 目的: 無意間碰到一個網站: https://wise.com/zh-cn/currency-converter/brl-to-cny-rate其實我就是想搜一下巴西的貨幣單位是什么。這個網站的設計很漂亮, 尤其是顏色搭配很不錯,討人喜歡。所以我想讓 AI 幫我生成類似的效果。本文…

驗證碼與登錄過程邏輯學習總結

目錄 前言 一、驗證碼與登錄 二、使用步驟 1.先apipost測試一波 2.先搞驗證碼 3.跨域問題 4.后端走起 總結 前言 近期要做一個比較完整的demo,需要自己做一個前端登錄頁面,不過api接口都是現成的,一開始以為過程會很easy,…

軌道炮--范圍得遍歷,map巧統計

1.思路很難想,但代碼一看一下就明白了,就是模擬時間,map存起來遍歷也不受10*6影響 2.每次先統計點對應的直線,再動這個點,map一遍歷實時更新ma統計max,AC!!!! https://www.luogu.com.cn/problem/P8695 #i…

Vue 3.5 新特性深度解析:全面升級的開發體驗

Vue 3.5 新特性深度解析:全面升級的開發體驗 前言 隨著Vue 3.5的正式發布,這個漸進式JavaScript框架再次帶來了令人興奮的改進。本文將深入剖析Vue 3.5的核心更新,幫助開發者快速掌握新特性并應用于實際項目。 ? 核心新特性 1. 增強的響應…

質量管理工程師面試總結

今天閑著無聊參加了學校招聘會的一家雙選會企業,以下是面試的過程。 此次面試采用的是一對多的形式。(此次三個求職者,一個面試官) 面試官:開始你們每個人先做個自我介紹吧。 哈哈哈哈哈哈哈哈,其實我們…

c++ std庫中的文件操作學習筆記

1. 概述 C標準庫提供了 頭文件中的幾個類來進行文件操作,這些類封裝了底層的文件操作,提供了面向對象和類型安全的接口,使得文件讀寫更加便捷和高效。主要的文件流類包括: std::ifstream:用于從文件中讀取數據。 st…

【網絡安全】SQL注入

如果文章不足還請各位師傅批評指正! 想象一下,你經營著一家咖啡店,顧客可以通過店內的點單系統下單。這個系統會根據顧客的輸入,向后廚發送指令,比如“為顧客A準備一杯拿鐵”。 然而,如果有個不懷好意的顧客…

解決Mawell1.29.2啟動SQLException: You have an error in your SQL syntax問題

問題背景 此前在openEuler24.03 LTS環境下的Hive使用了MySQL8.4.2,在此環境下再安裝并啟動Maxwell1.29.2時出現如下問題 [ERROR] Maxwell: SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version f…

Oracle APEX IR報表列寬調整

目錄 1. 問題:如何調整Oracle APEX IR報表列寬 2. 解決辦法 1. 問題:如何調整Oracle APEX IR報表列寬 1-1. 防止因標題長而數據短,導致標題行的文字都立起來了,不好看。 1-2. 防止因數據太長而且中間還沒有空格,把列…

pytorch 14.3 Batch Normalization綜合調參實踐

文章目錄 一、Batch Normalization與Batch_size綜合調參二、復雜模型上的Batch_normalization表現1、BN對復雜模型(sigmoid)的影響2、模型復雜度對模型效果的影響3、BN對復雜模型(tanh)的影響 三、包含BN層的神經網絡的學習率優化…

Model.eval() 與 torch.no_grad() PyTorch 中的區別與應用

Model.eval() 與 torch.no_grad(): PyTorch 中的區別與應用 在 PyTorch 深度學習框架中,model.eval() 和 torch.no_grad() 是兩個在模型推理(inference)階段經常用到的函數,它們各自有著獨特的功能和應用場景。本文將詳細解析這兩…

Swagger go中文版本手冊

Swaggo(github.com/swaggo/swag)的注解語法是基于 OpenAPI 2.0 (以前稱為 Swagger 2.0) 規范的,并添加了一些自己的約定。 主要官方文檔: swaggo/swag GitHub 倉庫: 這是最權威的來源。 鏈接: https://github.com/swaggo/swag重點關注: README.md: 包含了基本的安裝、使用…

物聯網設備遠程管理:基于代理IP的安全固件更新通道方案

在物聯網設備遠程管理中,固件更新的安全性直接關系到設備功能穩定性和系統抗攻擊能力。結合代理IP技術與安全協議設計,可構建安全、高效的固件更新通道。 一、代理IP在固件更新中的核心作用 網絡層隱匿與路由優化 隱藏更新源服務器:通過代理I…

【C++重載操作符與轉換】句柄類與繼承

目錄 一、句柄類的基本概念 1.1 什么是句柄類 1.2 句柄類的設計動機 1.3 句柄類的基本結構 二、句柄類的實現方式 2.1 基于指針的句柄類 2.2 值語義的句柄類 2.3 引用計數的句柄類 三、句柄類與繼承的結合應用 3.1 實現多態容器 3.2 實現插件系統 3.3 實現狀態模式…

谷歌曾經的開放重定向漏洞(如今已經修復) -- noogle DefCamp 2024

題目描述: 上周,我決定創建自己的搜索引擎。這有點難,所以我背上了另一個。我也在8000端口上嘗試了一些東西。 未發現題目任何交互,但是存在一個加密js const _0x43a57f _0x22f9; (function(_0x3d7d57, _0x426e05) {const _0x16c3fa _0x22f9, _0x3187…

【C#】ToArray的使用

在 C# 中&#xff0c;ToArray 方法通常用于將實現了 IEnumerable<T> 接口的集合&#xff08;如 List<T>&#xff09;轉換為數組。這個方法是 LINQ 提供的一個擴展方法&#xff0c;位于 System.Linq 命名空間中。因此&#xff0c;在使用 ToArray 方法之前&#xff0…

資產管理平臺—chemex

1、簡介 Chemex CMDB&#xff08;Configuration Management Database&#xff09;是一個基于現代微服務架構的資產管理與自動化平臺&#xff0c;專為 IT 基礎設施與業務資產管理而設計。其核心目標是解決大規模系統運維中資產信息混亂、配置分散、數據不一致等問題&#xff0c…