Spark初識-Spark基本架構概覽使用

當需要處理的數據量超過了單機尺度(比如我們的計算機有4GB的內存,而我們需要處理100GB以上的數據)這時我們可以選擇spark集群進行計算,有時我們可能需要處理的數據量并不大,但是計算很復雜,需要大量的時間,這時我們也可以選擇利用spark集群強大的計算資源,并行化地計算

一、架構及生態

架構示意圖如下:

img

  • Spark Core:實現了 Spark 的基本功能,包含任務調度、內存管理、錯誤恢復、與存儲系統交互等模塊。SparkCore 中還包含了對彈性分布式數據集(Resilient Distributed DataSet,簡稱RDD)的API定義。
  • Spark SQL:是 Spark 用來操作結構化數據的程序包。通過SparkSql,我們可以使用 SQL或者Apache Hive 版本的 SQL 方言(HQL)來查詢數據。Spark SQL 支持多種數據源,比如 Hive 表、Parquet 以及 JSON 等。
  • Spark Streaming:是 Spark 提供的對實時數據進行流式計算的組件。提供了用來操作數據流的 API,并且與 Spark Core 中的 RDD API 高度對應。
  • Spark MLlib:提供常見的機器學習 (ML) 功能的程序庫。包括分類、回歸、聚類、協同過濾等,還提供了模型評估、數據導入等額外的支持功能。
  • GraphX:控制圖、并行圖操作和計算的一組算法和工具的集合。GraphX擴展了RDD API,包含控制圖、創建子圖、訪問路徑上所有頂點的操作。

Spark架構的組成圖如下:

img

  • Cluster Manager:Spark 設計為可以高效地在一個計算節點到數千個計算節點之間伸縮計算,為了實現這樣的要求,同時獲得最大靈活性,Spark 支持在各種集群管理器(Cluster Manager)上運行,目前 Spark 支持 3 種集群管理器:
    1. Hadoop YARN(在國內使用最廣泛)
    2. Apache Mesos(國內使用較少, 國外使用較多)
    3. Standalone(Spark 自帶的資源調度器, 需要在集群中的每臺節點上配置 Spark)
  • Worker節點:從節點,負責控制計算節點,啟動Executor或者Driver。
  • Driver: 運行Application 的main()函數
  • Executor:執行器,是為某個Application運行在worker node上的一個進程

二、Spark運行架構

基本概念:RDD、DAG、Executor、Application、Task、Job、Stage

img

  • RDD:彈性分布式數據集的簡稱,是分布式內存的一個抽象概念 ,提供了一個高度共享的內存模型。

  • Worker Node:物理節點,上面執行executor進程

  • Executor:Worker Node為某應用啟動的一個進程,執行多個tasks

  • Jobs:action 的觸發會生成一個job, Job會提交給DAGScheduler,分解成Stage,

  • Stage:DAGScheduler 根據shuffle將job劃分為不同的stage,同一個stage中包含多個task,這些tasks有相同的 shuffle dependencies。

? 有兩類shuffle map stage和result stage:
? shuffle map stage:case its tasks’ results are input for other stage(s)
? result stage:case its tasks directly compute a Spark action (e.g. count(), save(), etc) by running a function on an RDD,輸入與結果間劃分stage

  • Task:被送到executor上的工作單元,task簡單的說就是在一個數據partition上的單個數據處理流程。

action觸發一個job (task對應在一個partition上的數據處理流程)

------stage1(多個tasks 有相同的shuffle依賴)------【map–shuffle】------- stage2---- 【result–shuffle】-----

img

*、本文參考

深入淺出,一文讓你了解什么是Spark
Spark中application、job、stage、tast之間的關系詳解
spark原理:概念與架構、工作機制

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

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

相關文章

Spark初識-彈性分布式數據集RDD

Spark 的核心是建立在統一的抽象彈性分布式數據集(Resiliennt Distributed Datasets,RDD)之上的,這使得 Spark 的各個組件可以無縫地進行集成,能夠在同一個應用程序中完成大數據處理。 一、RDD概念 RDD 是 Spark 提供…

nmon

1).采集數據: #nmon -s10 -c60 -f -m /home/ 參數解釋: -s10 每 10 秒采集一次數據。 -c60 采集 60 次,即為采集十分鐘的數據。 -f 生成的數據文件名中包含文件創建的時間。 -m 生成的數據文件的存放目錄。 這樣就會生成一個 nmon 文件&…

Spark入門- Spark運行Local本地模式

一、Spark單機模式部署 Spark版本 : spark-2.4.7-bin-hadoop2.7 1、安裝配置JDK環境 2、下載Spark 官網下載http://spark.apache.org/ 然后上傳到LInux服務器上 3、解壓 tar -zxvf spark-2.4.7-bin-hadoop2.7.tgz解壓目錄說明 bin 可執行腳本 conf …

Spark入門-了解Spark核心概念

在本文中我們將從Spark集群角度和程序應用的角度來對相關概念進行了解 一. 站在集群角度 1.1 Master Spark 特有資源調度系統的 Leader。掌管著整個集群的資源信息,類似于 Yarn 框架中的 ResourceManager,主要功能: 監聽 Worker&#xff0…

Spark運行standalone集群模式

spark的集群主要有三種運行模式standalone、yarn、mesos,其中常被使用的是standalone和yarn,本文了解一下什么是standalone運行模式,并嘗試搭建一個standalone集群 一、standalone模式 standalone模式,是spark自己實現的&#xf…

docker原理

a.更快速的支付和部署:開發者可以使用一個標準的鏡像來構建一套開發容器 ,開發完成之后,運維人員可以直接使用這個容器來部署代碼。 b.更高效的虛擬化: Docker容器的運行不需要額外的hypervisor支持,它是內核級的虛擬化,因此 可以實現更高的性能和效。 I 0c更輕松的遷移和擴展…

創造型模式——工廠模式

工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 在工廠模式中,我們在創建對象時不會對客戶端暴露創建邏輯,并且是通過使用一個共同的…

創造型模式——抽象工廠模式

抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創建其他工廠。該超級工廠又稱為其他工廠的工廠。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 在抽象工廠模式中,接口是負責創建一個相關對象的…

Iptables防火墻原理

一、IPTABLES概念 iptables是隔離主機以及網絡的工具,通過自己設定的規則以及處理動作對數據報文進行檢測以及處理。從設備上分類,防火墻分為軟件防火墻、硬件防火墻、芯片級防火墻。從技術上分類,防火墻分為數據包過濾型防火墻、應用代理型防火墻。這是因為四層模型的每一…

創造型模式——單例模式

單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個對象被創建…

trap命令

trap命令用于指定在接收到信號后將要采取的行動,信號的信息前面已經提到。 trap 命令的一種常見用途是在腳本程序被中斷時完成清理工作。 歷史上,shell 總是用數字來代表信號,而新的腳本程字應該使用信號的名字,它們保存在用#include命令包含進來的signal.h頭文件中,在使用…

創造型模式——建造者模式

建造者模式(Builder Pattern)使用多個簡單的對象一步一步構建成一個復雜的對象。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 一個 Builder 類會一步一步構造最終的對象。該 Builder 類是獨立于其他對象的。 一、介紹…

shell知識點

靜態語言是編譯型語言,強類型的語言 如C,C++,java(面向對象),C#, 動態語言是解釋型語言,弱類型的語言,邊解釋邊執行 ,需要解釋器,解釋器是用靜態語言開發的如shell(面向過程), perl,asp,asp.net,php,python(面向對象) 腳本執行 1.…

創造性模式——原型模式

原型模式(Prototype Pattern)是用于創建重復的對象,同時又能保證性能。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 這種模式是實現了一個原型接口,該接口用于創建當前對象的克隆。當直接創建…

Consider defining a bean of type ‘java.lang.String‘ in your configuration

Consider defining a bean of type ‘java.lang.String’ in your configuration 總結了網上的幾種解決方案: 1、多余的autowired 2、待實例化的類里必須有默認的構造方法(即沒有參數的那種) Consider defining a bean of type ‘XXXX’ …

SpringBoot-探索回顧Spring框架本質

自始至終,SpringBoot框架都是為了能夠幫助使用Spring框架的開發 快速高效地構建 一個個基于Spring框架以及Spring生態體系的應用解決方案。要深刻理解SpringBoot框架,首先我們需要深刻理解Spring框架。 一、Spring 中的 IoC、DI 和 DL 部分Java開發者對…

redis精解

概念Redis是完全開源免費的,遵守BSD協議,是-一個高性能的key-value數據庫。它支持存儲的value類型很多,包括string(字符串)、list(鏈表)、set(集合)、(Zset(有序集合),這些數據類型都支持。 push/pop、add/remove及 取交集和并集及更豐富的操作,Redis支持各種不同方式的排序)…

@SpringBootApplication揭秘

一、SpringBoot初體驗 一個典型的SpringBoot應用長什么樣子呢?如果我們使用http://start.spring.io/創建一個最簡單的依賴Web模塊的SpringBoot應用,一般情況下, 我們會得到一個SpringBoot應用的啟動類,如下面代碼所示&#xff1a…

SpringApplication:SpringBoot程序啟動的一站式解決方案

我們說SpringBoot是Spring框架對“約定優先于配置(Convention Over Configuration)"理念的最佳實踐的產物,一個典型的SpringBoot應用本質上其 實就是一個基于Spring框架的應用 如果非說SpringBoot微框架提供了點兒自己特有的東西,在核心類層面&…

了解spring-boot-starter

SpringBoot提供了針對日常企業應用研發各種場景的spring-boot-starter自動配置 依賴模塊,如此多“開箱即用”的依賴模塊,使得開發各種場景的Spring應用 更加快速和高效,本文會就幾個常見的通用spring-boot-starter模塊進行了解 一、約定優先于…