鍍金池/ 教程/ 大數(shù)據(jù)/ Spark教程
Spark 安裝
Spark編程
Spark核心編程
Spark教程
Apache Spark RDD
Spark部署

Spark教程

Apache Spark是一個集群計算設(shè)計的快速計算。它是建立在Hadoop MapReduce之上,它擴展了 MapReduce 模式,有效地使用更多類型的計算,其中包括交互式查詢和流處理。這是一個簡單的Spark教程,介紹了Spark核心編程的基礎(chǔ)知識。


工業(yè)公司廣泛的使用 Hadoop 來分析他們的數(shù)據(jù)集。其原因是,Hadoop框架是基于簡單的編程模型(MapReduce),并且它使用的計算解決方案,是可擴展的,柔性的,容錯和低成本。 在這里,主要關(guān)心的是在查詢之間等待時間和等待時間來運行程序處理大型數(shù)據(jù)集的速度。

Spark由Apache軟件基金會對于加快Hadoop計算軟件的過程。

作為對一個共同的信念,Spark不是 Hadoop 的修改版本,不依賴于Hadoop,因為它有自己的集群管理。Hadoop僅僅是實現(xiàn)Spark的方式之一。

Spark使用Hadoop的方式有兩種- 一種是存儲和第二個是處理。由于Spark有自己的集群管理計算,所以一般它使用Hadoop只有存儲的目的。

Apache Spark

Apache Spark是一個快速的集群計算技術(shù),設(shè)計用于快速計算。它是基于Hadoop MapReduce和它擴展了MapReduce模型,以有效地將其用于多種類型的計算,其中包括交互式查詢和流處理。Spark的主要特征是其內(nèi)存集群計算,增加的應(yīng)用程序的處理速度。

Spark旨在涵蓋廣泛的工作負載,如批量應(yīng)用,迭代算法,交互式查詢和分流。除了支持所有這些工作負載在各自的系統(tǒng)中,它減少了維護單獨工具的管理負擔(dān)。

Apache Spark的演變

Spark是在加州大學(xué)伯克利分校的AMPLab由馬太·扎哈里亞在2009年開發(fā)的Hadoop子項目之一。它在2010年開源,在BSD許可下。它在2013年捐贈給Apache Software 基金,現(xiàn)在的Apache Spark已經(jīng)在2014年2月成為Apache的頂級項目。

Apache Spark特色

Apache Spark有以下特點。

  • 速度 ? Spark有助于運行Hadoop集群應(yīng)用,在存儲器高達100倍更快的速度,以及10倍的速度在磁盤上運行時。這可以通過減少讀/寫操作數(shù)到磁盤。它存儲在內(nèi)存中的中間處理數(shù)據(jù)。

  • 支持多語言 ? Spark 提供了Java, Scala, Python的內(nèi)置API。因此,可以使用不同語言來寫應(yīng)用程序。Spark 配備了80個高層次的操作符進行互動查詢。

  • 高級分析 ? Spark不只支持“Map”和“reduce”。它還支持SQL查詢,流數(shù)據(jù),機器學(xué)習(xí)(ML),和圖形的算法。

Spark在Hadoop上建立

下圖顯示了Spark 如何使用Hadoop組件的三種方式來構(gòu)建。

有三種方法部署Spark ,如下面所解釋。

  • 單機版 ? Spark獨立部署是指Spark占據(jù)在HDFS之上(Hadoop分布式文件系統(tǒng))并將空間分配給HDFS。在這里,Spark和MapReduce將并列覆蓋所有Spark的作業(yè)集群。

  • Hadoop Yarn ? Hadoop Yarn部署方式,簡單地說,spark運行在Yarn沒有任何必要預(yù)安裝或使用root訪問權(quán)限。它有助于Spark融入Hadoop生態(tài)系統(tǒng)和Hadoop堆棧。它允許在其它部件疊上層的頂部上運行。

  • Spark 在 MapReduce (SIMR) ? Spark在MapReduce的用于啟動spark作業(yè),除了獨立部署。通過SIMR,用戶可以啟動Spark和使用Shell,而不需要任何管理權(quán)限。

Spark組件

下圖說明了Spark的不同組成部分。

Apache Spark 核心

Spark核心是底層一般執(zhí)行引擎,所有其他的功能都是建立在Spark的平臺之上。 它提供了內(nèi)存計算和引用數(shù)據(jù)集在外部存儲系統(tǒng)。

Spark SQL

星火SQL是引入了一種名為SchemaRDD一個新的數(shù)據(jù)抽象,它提供了結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)的支持,它是Spark核心的組成部分。

Spark 數(shù)據(jù)流

Spark數(shù)據(jù)流充分利用Spark核心快速調(diào)度能力進行流分析。它攝取的數(shù)據(jù)在小型分批進行RDD(彈性分布式數(shù)據(jù)集),對這些小批量的數(shù)據(jù)轉(zhuǎn)換。

MLlib (機器學(xué)習(xí)庫)

MLlib是一個分布式的機器學(xué)習(xí)框架的分布式存儲器為基礎(chǔ)的Spark架構(gòu)。它根據(jù)基準,由MLlib開發(fā)商對交替最小二乘(ALS)實現(xiàn)完成。Spark MLlib 9倍快于Hadoop基于磁盤的版本(前Mahout中獲得了星火接口)Apache Mahout 。

GraphX

GraphX是Spark頂部上的分布式圖形處理框架。它提供了用于表達圖表計算,并可以通過使用預(yù)凝膠抽象API來建模用戶定義的圖形的API。它還提供了這種抽象的優(yōu)化運行。



上一篇:Spark核心編程下一篇:Apache Spark RDD