Spark入門

Spark:算法

 1、歷史網絡

         一、誕生於2009年,加州大學伯克利分校RAD實驗室的一個研究項目,最初是基於Hadoop MapReduce的,發現MapReduce在迭代式計算和交互式上低效,引入內存存儲機器學習

         二、2010年3月份Spark開源分佈式

         三、2011年在AMP實驗室開發出高級組件,像Spark Streaming工具

         四、2013年成爲Apache頂級項目oop

 

2、特色學習

         一、快速的(Spark擴充了流行的MapReduce計算模型,Spark是基於內存的計算)測試

         二、通用的(Spark的設計容納了其餘分佈式系統擁有的功能(下降維護成本),批處理(hadoop)、迭代式計算(機器學習)、交互查詢(hive)和流處理(storm))大數據

         三、高度開放(Spark提供了Python、Java、Scala、SQL的API和豐富的內置庫,和其餘的大數據工具整合的很好,包括hadoop、kafka等)優化

 

3、緊密集成的優勢

         Spark是緊密集成的,優化了Spark底層,基於Spark底層的組件,也獲得了相應的優化

         緊密集成,節省了各個組件的使用時的部署、測試時間

         向Spark增長新的組件時,其餘組件,可當即享用新組件的功能

 

4、組件

         一、Spark Core

                   包含Spark基本功能,包含任務調度、內存管理、容錯機制等

                   內部定義了RDDs(彈性分佈式數據集)

                   提供了不少APIs來建立和操做RDDs

                   應用場景,爲其餘組件提供底層的服務

         二、Spark SQL

                   是處理結構化數據的庫,像Hive Sql、MySQL同樣

                   應用場景,企業中用來作報表統計

         三、Spark Streaming

                   是實時數據流處理組件,相似Storm

                   Spark Streaming提供API來操做實時流數據

                   應用場景,企業中用來從kafka接收數據作實時統計

         四、Mlib

                   一個包含通用機器學習功能的包,Machine learning lib

                   包含分類、聚類、迴歸等,還包括模型評估,和數據導入

                   MLib提供的上面的這些方法,都支持集羣上的橫向擴展(以前機器學習大多用Python,缺點就是單機的,不能作集羣)

                   應用場景,機器學習

         五、Graphx

                   是處理圖的庫(例如,社交網絡圖),並進行圖的並行運算

                   像Spark Streaming,Spark SQL同樣,它也繼承了RDD API

                   它提供了各類圖的操做,和經常使用的圖算法,例如PangRank算法

                   應用場景,圖計算

         六、Cluster Managers

                   就是集羣管理,Spark自帶一個集羣管理的單獨調度器

                   常見的集羣管理包括Hadoop YARN、Apache Mesos

相關文章
相關標籤/搜索