spark
Spark Core:包含Spark的基本功能;尤其是定義RDD的API、操作以及這兩者上的動作。其他Spark的庫都是構建在RDD和Spark Core之上的
Spark SQL:提供透過Apache Hive的SQL變體Hive查詢語言(HiveQL)與Spark進行互動的API。每個資料庫表被當做一個RDD,Spark SQL查詢被轉換為Spark操作。
Spark Streaming:對實時資料流進行處理和控制。Spark Streaming允許程式能夠像普通RDD一樣處理實時資料
Llib:一個常用機器學習演算法庫,演算法被實現為對RDD的Spark操作。這個庫包含可擴充套件的學習演算法,比如分類、迴歸等需要對大量資料集進行迭代的操作。
GraphX:控制圖、並行圖操作和計算的一組演算法和工具的集合。GraphX擴充套件了RDD API,包含控制圖、建立子圖、訪問路徑上所有頂點的操作
架構組成:
Spark架構的組成圖如下:
Cluster Manager:在standalone模式中即為Master主節點,控制整個叢集,監控worker。在YARN模式中為資源管理器
Worker節點:從節點,負責控制計算節點,啟動Executor或者Driver。
Driver: 執行Application 的main()函式
Executor:執行器,是為某個Application執行在worker node上的一個程式
Spark與hadoop:
Hadoop有兩個核心模組,分散式儲存模組HDFS和分散式計算模組Mapreduce
spark本身並沒有提供分散式檔案系統,因此spark的分析大多依賴於Hadoop的分散式檔案系統HDFS
Hadoop的Mapreduce與spark都可以進行資料計算,而相比於Mapreduce,spark的速度更快並且提供的功能更加豐富
構建Spark Application的執行環境,啟動SparkContext
SparkContext向資源管理器(可以是Standalone,Mesos,Yarn)申請執行Executor資源,並啟動StandaloneExecutorbackend,
SparkContext將應用程式分發給Executor
SparkContext構建成DAG圖,將DAG圖分解成Stage、將Taskset傳送給Task Scheduler,最後由Task Scheduler將Task傳送給Executor執行
Task在Executor上執行,執行完釋放所有資源
每個Application獲取專屬的executor程式,該程式在Application期間一直駐留,並以多執行緒方式執行Task。這種Application隔離機制是有優勢的,無論是從排程角度看(每個Driver排程他自己的任務),還是從執行角度看(來自不同Application的Task執行在不同JVM中),當然這樣意味著Spark Application不能跨應用程式共享資料,除非將資料寫入外部儲存系統
Spark與資源管理器無關,只要能夠獲取executor程式,並能保持相互通訊就可以了
提交SparkContext的Client應該靠近Worker節點(執行Executor的節點),最好是在同一個Rack裡,因為Spark Application執行過程中SparkContext和Executor之間有大量的資訊交換
Task採用了資料本地性和推測執行的最佳化機制
推薦閱讀:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69949806/viewspace-2904221/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spark之spark shellSpark
- 【Spark篇】---Spark初始Spark
- Spark on Yarn 和Spark on MesosSparkYarn
- Spark系列 - (3) Spark SQLSparkSQL
- Spark學習進度-Spark環境搭建&Spark shellSpark
- 【Spark】Spark容錯機制Spark
- Spark導論(Spark自學一)Spark
- spark學習筆記--Spark SQLSpark筆記SQL
- Spark記錄(一):Spark全景概述Spark
- Spark開發-Spark核心細說Spark
- Spark開發-spark環境搭建Spark
- Spark文件閱讀之一:Spark OverviewSparkView
- Spark 系列(九)—— Spark SQL 之 Structured APISparkSQLStructAPI
- Spark 系列(十四)—— Spark Streaming 基本操作Spark
- Spark 系列(十五)—— Spark Streaming 整合 FlumeSpark
- Hello Spark! | Spark,從入門到精通Spark
- spark2.2.0 配置spark sql 操作hiveSparkSQLHive
- Spark SQL | Spark,從入門到精通SparkSQL
- spark學習筆記-- Spark StreamingSpark筆記
- Spark —— Spark OOM Error問題排查定位SparkOOMError
- 【Spark篇】---Spark中控制運算元Spark
- 【Spark篇】---Spark中Action運算元Spark
- 【Spark篇】---Spark故障解決(troubleshooting)Spark
- 初學Spark——關於安裝SparkSpark
- Spark StageSpark
- spark with hiveSparkHive
- Spark 加入Spark
- Spark exampleSpark
- Spark SQLSparkSQL
- Spark學習筆記(三)-Spark StreamingSpark筆記
- Spark API 全集(1):Spark SQL Dataset & DataFrame APISparkAPISQL
- Spark SQL:4.對Spark SQL的理解SparkSQL
- 【Spark篇】---Spark中transformations運算元二SparkORM
- spark之 spark 2.2.0 Standalone安裝、wordCount演示Spark
- spark學習之-----spark程式設計模型Spark程式設計模型
- Spark資料收藏--------Spark執行架構Spark架構
- 【Spark篇】---Spark中Shuffle檔案的定址Spark
- Spark下載與入門(Spark自學二)Spark