五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

Spark簡介

Spark是基于內存的分布式計算框架。在迭代計算的場景下,數據處理過程中的數據可以存儲在內存中,提供了比MapReduce高10到100倍的計算能力。Spark可以使用HDFS作為底層存儲,使用戶能夠快速地從MapReduce切換到Spark計算平臺上去。Spark提供一站式數據分析能力,包括小批量流式處理、離線批處理、SQL查詢、數據挖掘等,用戶可以在同一個應用中無縫結合使用這些能力。

Spark的特點如下:

  • 通過分布式內存計算和DAG(無回路有向圖)執(zhí)行引擎提升數據處理能力,比MapReduce性能高10倍到100倍。
  • 提供多種語言開發(fā)接口(Scala/Java/Python),并且提供幾十種高度抽象算子,可以很方便構建分布式的數據處理應用。
  • 結合SQL、Streaming等形成數據處理棧,提供一站式數據處理能力。
  • 支持契合Hadoop生態(tài)環(huán)境,Spark應用可以運行在Standalone、Mesos或者YARN上,能夠接入HDFS、HBase、Hive等多種數據源,支持MapReduce程序平滑轉接。

Spark結構介紹

模塊名稱
描述

Cluster Manager

集群管理器,管理集群中的資源。Spark支持多種集群管理器,Spark自帶的Standalone集群管理器、Mesos或YARN。Spark集群默認采用YARN模式。

Application

Spark應用,由一個Driver Program和多個Executor組成。

Deploy Mode

部署模式,分為cluster和client模式。cluster模式下,Driver會在集群內的節(jié)點運行;而在client模式下,Driver在客戶端運行(集群外)。

Driver Program

是Spark應用程序的主進程,運行Application的main()函數并創(chuàng)建SparkContext。負責應用程序的解析、生成Stage并調度Task到Executor上。通常SparkContext代表Driver Program。

Executor

在Work Node上啟動的進程,用來執(zhí)行Task,管理并處理應用中使用到的數據。一個Spark應用一般包含多個Executor,每個Executor接收Driver的命令,并執(zhí)行一到多個Task。

Worker Node

集群中負責啟動并管理Executor以及資源的節(jié)點。

Job

一個Action算子(比如collect算子)對應一個Job,由并行計算的多個Task組成。

Stage

每個Job由多個Stage組成,每個Stage是一個Task集合,由DAG分割而成。

Task

承載業(yè)務邏輯的運算單元,是Spark平臺上可執(zhí)行的最小工作單元。一個應用根據執(zhí)行計劃以及計算量分為多個Task。

Spark原理及相關介紹

Spark原理

Spark的應用運行結構如下圖。

運行流程如下:

1、應用程序(Application)是作為一個進程的集合運行在集群上的,由Driver進行協調。

2、在運行一個應用時,Driver會去連接集群管理器(Standalone、Mesos、YARN)申請運行Executor資源,并啟動ExecutorBackend。然后由集群管理器在不同的應用之間調度資源。Driver同時會啟動應用程序DAG調度、Stage劃分、Task生成。

3、然后Spark會把應用的代碼(傳遞給SparkContext的JAR或者Python定義的代碼)發(fā)送到Executor上。

4、所有的Task執(zhí)行完成后,用戶的應用程序運行結束。

Spark Streaming

Spark Streaming是一種構建在Spark上的實時計算框架,擴展了Spark處理大規(guī)模流式數據的能力。當前Spark支持兩種數據處理方式:Direct Streaming和Receiver方式。

SparkSQL和DataSet

SparkSQL是Spark中用于結構化數據處理的模塊。在Spark應用中,可以無縫地使用SQL語句亦或是DataSet API對結構化數據進行查詢。

SparkSQL以及DataSet還提供了一種通用的訪問多數據源的方式,可訪問的數據源包括Hive、CSV、Parquet、ORC、JSON和JDBC數據源,這些不同的數據源之間也可以實現互相操作。SparkSQL復用了Hive的前端處理邏輯和元數據處理模塊,使用SparkSQL可以直接對已有的Hive數據進行查詢。

另外,SparkSQL還提供了諸如API、CLI、JDBC等諸多接口,對客戶端提供多樣接入形式。

SparkSession

SparkSession是Spark編程的統一API,也可看作是讀取數據的統一入口。SparkSession提供了一個統一的入口點來執(zhí)行以前分散在多個類中的許多操作,并且還為那些較舊的類提供了訪問器方法,以實現最大的兼容性。

Structured Streaming

Structured Streaming是構建在Spark SQL引擎上的流式數據處理引擎,用戶可以使用Scala、Java、Python或R中的Dataset/DataFrame API進行流數據聚合運算、按事件時間窗口計算、流流Join等操作。當流數據連續(xù)不斷的產生時,Spark SQL將會增量的、持續(xù)不斷的處理這些數據并將結果更新到結果集中。同時,系統通過checkpoint和Write Ahead Logs確保端到端的完全一次性容錯保證。

Structured Streaming的核心是將流式的數據看成一張不斷增加的數據庫表,這種流式的數據處理模型類似于數據塊處理模型,可以把靜態(tài)數據庫表的一些查詢操作應用在流式計算中,Spark執(zhí)行標準的SQL查詢,從不斷增加的無邊界表中獲取數據。

Spark與其他組件的關系

  • Spark和HDFS的配合關系

    通常,Spark中計算的數據可以來自多個數據源,如Local File、HDFS等。最常用的是HDFS,用戶可以一次讀取大規(guī)模的數據進行并行計算。在計算完成后,也可以將數據存儲到HDFS。

    分解來看,Spark分成控制端(Driver)和執(zhí)行端(Executor)??刂贫素撠熑蝿照{度,執(zhí)行端負責任務執(zhí)行。

    通常,Spark中計算的數據可以來自多個數據源,如Local File、HDFS等。最常用的是HDFS,用戶可以一次讀取大規(guī)模的數據進行并行計算。在計算完成后,也可以將數據存儲到HDFS。

    分解來看,Spark分成控制端(Driver)和執(zhí)行端(Executor)。控制端負責任務調度,執(zhí)行端負責任務執(zhí)行。

  • Spark和YARN的配合關系

    Spark的計算調度方式,可以通過YARN的模式實現。Spark共享YARN集群提供豐富的計算資源,將任務分布式的運行起來。Spark on YARN分兩種模式:YARN Cluster和YARN Client。

    Spark的計算調度方式,可以通過YARN的模式實現。Spark共享YARN集群提供豐富的計算資源,將任務分布式的運行起來。Spark on YARN分兩種模式:YARN Cluster和YARN Client。

華為云MRS Spark基于開源Spark做了哪些特性增強?

華為云MRS Spark基于開源Spark做了哪些特性增強?

  • CarbonData

    CarbonData是一種新型的Apache Hadoop本地文件格式,使用先進的列式存儲、索引、壓縮和編碼技術,以提高計算效率,有助于加速超過PB數量級的數據查詢,可用于更快的交互查詢。同時,CarbonData也是一種將數據源與Spark集成的高性能分析引擎。

    圖1 CarbonData基本結構

    使用CarbonData的目的是對大數據即席查詢提供超快速響應。

    CarbonData將數據源集成到Spark生態(tài)系統,用戶可使用Spark SQL執(zhí)行數據查詢和分析。也可以使用Spark提供的第三方工具JDBCServer連接到Spark SQL。

    CarbonData特性

    SQL功能:CarbonData與Spark SQL完全兼容,支持所有可以直接在Spark SQL上運行的SQL查詢操作。

    簡單的Table數據集定義:CarbonData支持易于使用的DDL(數據定義語言)語句來定義和創(chuàng)建數據集。CarbonData DDL十分靈活、易于使用,并且足夠強大,可以定義復雜類型的Table。

    便捷的數據管理:CarbonData為數據加載和維護提供多種數據管理功能。CarbonData支持加載歷史數據以及增量加載新數據。加載的數據可以基于加載時間進行刪除,也可以撤銷特定的數據加載操作。

    CarbonData文件格式是HDFS中的列式存儲格式。該格式具有許多新型列存儲文件的特性,例如,分割表,數據壓縮等。

    CarbonData關鍵技術和優(yōu)勢

    快速查詢響應:高性能查詢是CarbonData關鍵技術的優(yōu)勢之一。CarbonData查詢速度大約是Spark SQL查詢的10倍。CarbonData使用的專用數據格式圍繞高性能查詢進行設計,其中包括多種索引技術、全局字典編碼和多次的Push down優(yōu)化,從而對TB級數據查詢進行最快響應。

    高效率數據壓縮:CarbonData使用輕量級壓縮和重量級壓縮的組合壓縮算法壓縮數據,可以減少60%~80%數據存儲空間,很大程度上節(jié)省硬件存儲成本。

    CarbonData索引緩存服務器

    為了解決日益增長的數據量給driver帶來的壓力與出現的各種問題,現引入單獨的索引緩存服務器,將索引從Carbon查詢的Spark應用側剝離。所有的索引內容全部由索引緩存服務器管理,Spark應用通過RPC方式獲取需要的索引數據。這樣,釋放了大量的業(yè)務側的內存,使得業(yè)務不會受集群規(guī)模影響而性能或者功能出現問題。

  • 跨源復雜數據的SQL查詢優(yōu)化

    出于管理和信息收集的需要,企業(yè)內部會存儲海量數據,包括數目眾多的各種數據庫、數據倉庫等,此時會面臨以下困境:數據源種類繁多,數據集結構化混合,相關數據存放分散等,這就導致了跨源復雜查詢因傳輸效率低,耗時長。

    當前開源Spark在跨源查詢時,只能對簡單的filter進行下推,因此造成大量不必要的數據傳輸,影響SQL引擎性能。針對下推能力進行增強,當前對aggregate、復雜projection、復雜predicate均可以下推到數據源,盡量減少不必要數據的傳輸,提升查詢性能。

    目前僅支持JDBC數據源的查詢下推,支持的下推模塊有aggregate、projection、predicate、aggregate over inner join、aggregate over union all等。為應對不同應用場景的特殊需求,對所有下推模塊設計開關功能,用戶可以自行配置是否應用上述查詢下推的增強。