大數據Spark(五十六):Spark生態模塊與運行模式

文章目錄

Spark生態模塊與運行模式

一、Spark生態模塊

二、Spark運行模式


Spark生態模塊與運行模式

一、Spark生態模塊

Spark 生態模塊包括:SparkCore、SparkSQL、SparkStreaming、StructuredStreaming、MLlib 和 GraphX。與 Hadoop 相關的整個技術生態如下所示:

  +-------------------+     +-------------------+|   Spark 應用層    |     |   Hadoop 應用層   |+-------------------+     +-------------------+| Spark SQL         | <-->| Hive             |  (兼容 HiveQL, 元數據共享)| StructuredStreaming| <->| Kafka/Flume      |  (流數據源集成)| MLlib             | <-->| HDFS/HBase       |  (讀取訓練數據/存儲模型)| GraphX            | <-->| HDFS             |  (圖數據存儲)+-------------------+     +-------------------+↓                           ↓+---------------------------------------------------+|            Spark 計算引擎層 (Spark Core)          ||  (替代 MapReduce,運行于 YARN/Mesos/K8s 資源層)    |+---------------------------------------------------+↓                           ↓+-------------------+     +-----------------------+| Hadoop 資源管理層  |     | Hadoop 分布式存儲層    || YARN              |     | HDFS                  || (資源調度與分配)    |     | (數據持久化存儲)        |+-------------------+     +-----------------------+↓                           ↓+---------------------------------------------------+|           底層基礎設施(物理/虛擬化集群)           |+---------------------------------------------------+

下面分別介紹Spark各個模塊功能。

  • SparkCore

Spark Core 是 Spark 的核心模塊,提供了基本的功能和 API,包括任務調度、內存管理、故障恢復等,它實現了彈性分布式數據集(RDD)的概念,支持對分布式數據集的并行操作,Spark其他模塊都是基于 Spark Core 構建。

  • SparkSQL

Spark SQL 模塊用于處理結構化數據,支持使用標準SQL 進行數據分析、查詢,SparkSQL中還提供了 DataFrame 和 Dataset API,方便開發者以聲明式方式操作數據。此外,Spark SQL 還支持與 Hive 的集成,可以直接查詢 Hive 倉庫中的數據。

  • SparkSteaming

SparkStreaming 是基于 SparkCore 模塊實現的,用于實時處理流數據的模塊。它將實時數據流分成小批次,然后通過類似于 Spark Core 的 API 進行準實時數據處理。

  • StructuredStreaming

StructuredStreaming 是基于 SparkSQL 模塊構建的可擴展且容錯的流處理模塊。它提供了一種統一的編程模型,使開發者能夠以 SQL 方式編寫流式計算操作,可以輕松地對流數據進行轉換、聚合和分析。

  • MLlib

MLlib 模塊是 Spark 的機器學習庫,提供了常用的機器學習算法和工具,如分類、回歸、聚類、協同過濾等。它利用 Spark 的分布式計算能力,能夠處理大規模數據集上的機器學習任務。

  • GraphX

GraphX 模塊用于圖計算,提供了用于表示圖和執行圖操作的 API。它支持常見的圖算法,如 PageRank、連接組件等,方便開發者進行復雜的圖數據分析。

二、Spark運行模式

Apache Spark 提供了多種運行模式,以適應不同的開發、測試和生產環境需求。這些模式包含Local Mode、Standalone Mode、Spark On Yarn、Spark On Mesos、Spark On K8s,下面分別介紹。

  • 本地模式(Local Mode)

在本地模式下,Spark 應用程序在單臺機器上運行,利用多線程模擬分布式計算。此模式適用于開發和測試階段,方便調試和驗證應用程序邏輯。可以通過指定線程數來控制并行度,例如:local[4] 表示使用 4 個線程。

  • 獨立模式(Standalone Mode)

Standalone 模式是 Spark 自帶的資源調度系統,無需依賴外部集群管理器。在此模式下,集群由一個主節點(Master)和多個工作節點(Worker)組成。應用程序提交到主節點后,主節點負責將任務分配給各個工作節點執行。此模式適用于中小型集群,配置和管理相對簡單。

  • YARN 模式(Spark on YARN)

在 YARN 模式下,Spark 運行在 Hadoop 的 YARN(Yet Another Resource Negotiator)集群管理器上。YARN 提供資源管理和作業調度功能,使 Spark 能夠與其他大數據應用程序共享集群資源。此模式適用于已經部署了 Hadoop 集群的環境,便于資源的統一管理。

  • Mesos 模式(Spark on Mesos)

Mesos 是一個分布式系統內核,可用于管理集群資源。在 Mesos 模式下,Spark 可以與其他框架(如 Apache Hadoop、Apache Storm)共享集群資源,實現資源的高效利用。此模式在國外使用居多。

  • Kubernetes 模式(Spark on Kubernetes)

Kubernetes 是一個開源的容器編排平臺。在 Kubernetes 模式下,Spark 應用程序以容器的形式運行,Kubernetes 負責容器的調度和管理。此模式適用于已經采用容器化技術的環境,提供了更好的彈性和可移植性。

在實際Spark開發中,Spark運行模式使用最多的是基于Yarn。


  • 📢博客主頁:https://lansonli.blog.csdn.net
  • 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
  • 📢本文由 Lansonli 原創,首發于 CSDN博客🙉
  • 📢停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活??

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

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

相關文章

Could not find artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0 in central

具體錯誤 [ERROR] Failed to execute goal on project datalink-resource: Could not resolve dependencies for project com.leon.datalink:datalink-resource:jar:1.0.0: Could not find artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0 in central (https://repo.maven…

運營商在網狀態查詢API接口如何對接?

運營商在網狀態查詢 API 接口是一種能夠讓開發者通過編程方式查詢手機號碼在運營商網絡中當前狀態的應用程序接口。該接口是一組規范和協議&#xff0c;允許第三方開發者通過特定的編程方式與運營商的系統進行交互&#xff0c;以查詢手機號碼在運營商網絡中的當前狀態。 運營商…

【JavaScript】---- 數組的交集,并集,差集的實現,以及Set對象的交集,并集,差集的詳細介紹和使用

1. 前言 數組的交集,并集,差集的實現。其實本質來說都不算難,但是 Set 類直接實現這些方法,所以我們先自己實現一下,然后再講解一下 Set 類的相同方法。 2. intersection 交集 用數學公式,交集被表示為: A ∩ B = { x ∈ A ∣ x ∈ B } A \cap B = \{x \in A \mid x…

青銅與信隼的史詩——TCP與UDP的千年博弈

點擊下面圖片帶您領略全新的嵌入式學習路線 &#x1f525;爆款熱榜 88萬閱讀 1.6萬收藏 第一章 契約之匣與自由之羽 熔巖尚未冷卻的鑄造臺上&#xff0c;初代信使長歐諾彌亞將液態秘銀倒入雙生模具。左側模具刻著交握的青銅手掌&#xff0c;右側則是展開的隼翼紋章。當星辰…

SpringBoot的日志框架

目錄 默認日志框架 日志配置 更換日志框架 排除默認Logback 引入目標日志框架 添加配置文件 logback.xml SpringBoot的核心設計宗旨是約定大于配置&#xff0c;很多框架功能都給你默認加載和配置完成供你使用&#xff0c;但這就要求使用者對框架有一定的理解和改造能力&am…

今日行情明日機會——20250403

今日漲停的主要行業方向分析&#xff08;2025-04-03&#xff09; 1. 貿易戰相關概念&#xff08;13家漲停&#xff09; 細分領域&#xff1a;外貿、稀土永磁、中日韓貿易、物流、港口。代表個股&#xff1a; 外貿&#xff1a;愛麗家居、派斯林、迪生力&#xff08;受特朗普宣布…

Vue3使用富文本編輯器vue-quill 自定義圖片上傳、文件上傳

一、引入依賴 // npm install vueup/vue-quill^1.2.0 quill^1.3.7"vueup/vue-quill": "^1.2.0","quill": "^1.3.7", 二、在vue文件中使用 <templete><div class"editor-container" v-if"show"><…

k8s pod重啟順序說明

在 Kubernetes 中&#xff0c;Pod 的重啟順序由 控制器類型 和 Pod 管理策略 共同決定。以下是不同場景下的詳細規則和底層邏輯&#xff1a; 一、Pod 重啟的觸發場景 場景類型觸發原因控制方容器崩潰重啟容器進程退出&#xff08;如異常、OOM&#xff09;kubelet&#xff08;…

Modbus RTU與TCP通信示例

準備工作 安裝 libmodbus 庫 Linux (Debian/Ubuntu): sudo apt-get install libmodbus-dev Windows: 下載預編譯庫 libmodbus for Windows&#xff0c;并配置開發環境。 示例 1.Modbus RTU (串行通信) #include <stdio.h> #include <modbus/modbus.h> ? int…

maven項目添加第三方JAR包

項目開發過程中&#xff0c;不可避免的需要用到一些maven庫&#xff08;公共庫、司庫等&#xff09;中沒有的冷門jar包依賴&#xff0c;這時&#xff0c;可以將這些第三方JAR包安裝到本地maven倉庫中&#xff0c;實現項目依賴的一致性。具體步驟如下&#xff1a; 1、下載jar包 …

Sentinel實戰(三)、流控規則之流控效果及流控小結

spring cloud Alibaba-Sentinel實戰&#xff08;三&#xff09;、流控效果流控小結 一、流控規則&#xff1a;流控效果一&#xff09;、流控效果&#xff1a;預熱1、概念含義2、案例流控規則設置測試結果 二&#xff09;、流控效果&#xff1a;排隊等待1、概念含義2、案例流控規…

c++ (通用引用)和(左值引用)區別

問&#xff1a; for (auto &&ipKF : vpKFs) {} 使用 一個& 和 兩個&& 區別和聯系&#xff1f; c 在 C 中&#xff0c;auto&& 和 auto& 在范圍基于的 for 循環中有重要的區別&#xff0c;涉及到引用類型和值類別的處理。讓我們詳細解釋它們的區…

使用高德api實現天氣查詢

創建應用獲取 Key 天氣查詢-基礎 API 文檔-開發指南-Web服務 API | 高德地圖API 代碼編寫 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wid…

XEOS 與 AutoMQ 推出聯合方案,共筑云原生 Kafka 新生態

近日&#xff0c;XSKY 星辰天合旗下企業級對象存儲產品 XEOS 與 AutoMQ 云原生消息隊列系統完成了產品兼容性適配互認證&#xff0c;致力于為客戶在私有云和混合云環境中提供云原生的 Kafka 解決方案。 在云計算和大數據時代&#xff0c;消息隊列作為分布式系統的重要組成部分…

Synology NAS 部署WPS-Office

記錄在群暉NAS上部署WPS-Office實現網頁上編輯文檔 目錄 1.思考及想法由來2.問題解決2.1 群暉NAS Docker使用2.2 部署wps-office參考1:【Docker+WPS Office】遠程辦公:Docker + WPS Office 私人云辦公室2.3 群暉NAS映射文件夾權限參考1:參考2:群暉NAS中普通用戶獲取Docker容…

Vue自定義指令最佳實踐教程

Vue 3 顯著增強了自定義指令的功能&#xff0c;使其封裝更加靈活和易用。本文將分為基礎和進階兩部分&#xff0c;介紹如何實現常用的自定義指令&#xff0c;并提供最佳的項目組織方式。 前言 本文以復制文本的自定義指令詳細介紹自定義指令的基礎知識 多個自定義指令如何進行…

用DrissionPage升級維基百科爬蟲:更簡潔高效的數據抓取方案

一、原方案痛點分析 原代碼使用urllibBeautifulSoup組合存在以下問題&#xff1a; 動態內容缺失&#xff1a;無法獲取JavaScript渲染后的頁面內容 反爬能力弱&#xff1a;基礎請求頭易被識別為爬蟲 代碼冗余&#xff1a;需要單獨處理SSL證書驗證 擴展性差&#xff1a;難以應…

23種設計模式-結構型模式-代理

文章目錄 簡介問題解決方案代碼核心設計要點 總結 簡介 代理是一種結構型設計模式&#xff0c;讓你能夠提供對象的替代品或其占位符。代理控制著對于原對象的訪問&#xff0c;并允許在把請求提交給對象前后進行一些處理。 問題 為什么要控制對于某個對象的訪問呢&#xff1f…

基于Transformer框架實現微調后Qwen/DeepSeek模型的非流式批量推理

在基于LLamaFactory微調完具備思維鏈的DeepSeek模型之后(詳見《深入探究LLamaFactory推理DeepSeek蒸餾模型時無法展示<think>思考過程的問題》),接下來就需要針對微調好的模型或者是原始模型(注意需要有一個本地的模型文件,全量微調就是saves下面的文件夾,如果是LoRA,…

基于OpenCV的指紋驗證:從原理到實戰的深度解析

指紋識別的技術革命與OpenCV的輕量級方案 在生物特征識別領域&#xff0c;指紋識別始終以獨特性和穩定性占據核心地位。隨著OpenCV等開源視覺庫的普及&#xff0c;這項看似"高大上"的技術正逐步走向民用化開發。本文將突破傳統算法框架&#xff0c;提出一套基于OpenC…