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

Spark簡介

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

Spark的特點如下:

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

Spark結構介紹

模塊名稱
描述

Cluster Manager

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

Application

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

Deploy Mode

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

Driver Program

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

Executor

在Work Node上啟動的進程,用來執(zhí)行Task,管理并處理應用中使用到的數(shù)據(jù)。一個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í)行的最小工作單元。一個應用根據(jù)執(zhí)行計劃以及計算量分為多個Task。

Spark原理及相關介紹

Spark原理

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

運行流程如下:

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

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

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

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

Spark Streaming

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

SparkSQL和DataSet

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

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

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

SparkSession

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

Structured Streaming

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

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

Spark與其他組件的關系

  • Spark和HDFS的配合關系

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

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

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

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

  • Spark和YARN的配合關系

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

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

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

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

  • CarbonData

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

    圖1 CarbonData基本結構

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

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

    CarbonData特性

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

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

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

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

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

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

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

    CarbonData索引緩存服務器

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

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

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

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

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