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

Spark教程

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


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

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

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

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

Apache Spark

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

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

Apache Spark的演變

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

Apache Spark特色

Apache Spark有以下特點。

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

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

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

Spark在Hadoop上建立

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

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

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

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

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

Spark組件

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

Apache Spark 核心

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

Spark SQL

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

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

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

MLlib (機器學習庫)

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

GraphX

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



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