大數據的重要框架 spark

1 概述
RDD 是一個能夠容錯且並行的數據結構(其實能夠理解成分佈式的集合,操做起來和操做本地集合同樣簡單),它可讓用戶顯式的將中間結果數據集保存在內存中,而且經過控制數據集的分區來達到數據存放處理最優化.同時 RDD也提供了豐富的 API (map、reduce、foreach、group。。。。)來操做數據集.後來 RDD被 AMPLab 在一個叫作 Spark 的框架中提供並開源. RDD的中間數據在內存中,運行數據塊;操做數據的API豐富,開發速度快
spark :Apache Spark是用於大規模數據處理的統一分析引擎
Spark基於內存計算,提升了在大數據環境下數據處理的實時性,同時保證了高容錯性和高可伸縮性,容許用戶將Spark部署在大量廉價硬件之上,造成集羣。
儘管Spark相對於Hadoop而言具備較大優點,但Spark並不能徹底替代Hadoop,不像 Hadoop 同樣包含了分佈式文件系統和完備的調度系統,Spark主要用於替代Hadoop中的MapReduce計算模型。存儲依然可使用HDFS,可是中間結果能夠存放在內存中,調度可使用內置,也可使用更成熟的調度系統YARN等
實際上,Spark已經很好地融入了Hadoop生態圈,併成爲其中的重要一員,它能夠藉助於YARN實現資源調度管理,藉助於HDFS實現分佈式存儲。
特色:1 易用
Spark支持Java、Python、R和Scala的API,還支持超過80種高級算法,使用戶能夠快速構建不一樣的應用。並且Spark支持交互式的Python和Scala的shell,能夠很是方便地在這些shell中使用Spark集羣來驗證解決問題的方法。
     2 通用
     Spark提供了統一的解決方案。Spark能夠用於批處理、交互式查詢(Spark SQL)、實時流處理(Spark Streaming)、機器學習(Spark MLlib)和圖計算(GraphX)。這些不一樣類型的處理均可以在同一個應用中無縫使用
     3 兼容性
     Spark能夠很是方便地與其餘的開源產品進行融合。好比,Spark可使用Hadoop的YARN和Apache Mesos做爲它的資源管理和調度器,而且能夠處理全部Hadoop支持的數據,包括HDFS、HBase和Cassandra等。這對於已經部署Hadoop集羣的用戶特別重要,由於不須要作任何數據遷移就可使用Spark的強大處理能力。Spark也能夠不依賴於第三方的資源管理和調度器,它實現了Standalone做爲其內置的資源管理和調度框架,這樣進一步下降了Spark的使用門檻,使得全部人均可以很是容易地部署和使用Spark
    spark 運行模式
        1.local本地模式(單機)--->經常使用於本地開發測試
分爲local單線程和local-cluster多線程
2.standalone獨立集羣模式--->偶爾於本地開發測試
典型的Mater/slave模式
3.standalone-HA高可用模式--->開發時生產環境可使用
基於standalone模式,使用zk搭建高可用,避免Master是有單點故障的
4.on yarn集羣模式--->開發時生產環境可使用
運行在 yarn 集羣之上,由 yarn 負責資源管理,Spark 負責任務調度和計算,
好處:計算資源按需伸縮,集羣利用率高,共享底層存儲,避免數據跨集羣遷移。
Spark的交互方式:
spark -shell
spark-submit\
spark的執行流程:
1.當咱們使用spark-shell或spark-submit提交 spark 任務的時候(提交任務的節點稱爲 Dirver)會生成了一個 Applications,並向master發送任務請求
2.master在接收到請求以後,會根據客戶端須要的任務資源(默認會佔用全部 Worker 的 cores,每一個佔用1g內存),選擇出合適的Worker節點
3.而後向worker發送任務指令,worker接收到任務以後,會啓動一個executor進程
4.executor啓動後,會等待分配計算任務,而後executor會向driver通訊
5.當有driver任務要執行時,任務就會分發到executor上, 而後並行執行
 算法

相關文章
相關標籤/搜索