-
什么是Spark?
- Spark官網:http://spark.apache.org

Spark是一種快速、通用、可擴展的大資料分析引擎,2009年誕生于加州大學伯克利分校AMPLab,2010年開源,2013年6月成為Apache范訓專案,2014年2月成為Apache頂級專案,目前,Spark生態系統已經發展成為一個包含多個子專案的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子專案,Spark是基于記憶體計算的大資料并行計算框架,Spark基于記憶體計算,提高了在大資料環境下資料處理的實時性,同時保證了高容錯性和高可伸縮性,允許用戶將Spark部署在大量廉價硬體之上,形成集群,
Spark得到了眾多大資料公司的支持,這些公司包括Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、騰訊、京東、攜程、優酷土豆,當前百度的Spark已應用于鳳巢、大搜索、直達號、百度大資料等業務;阿里利用GraphX構建了大規模的圖計算和圖挖掘系統,實作了很多生產系統的推薦演算法;騰訊Spark集群達到8000臺的規模,是當前已知的世界上最大的Spark集群,
- 概念:Spark是統一的分布式大資料分析引擎
- 關鍵詞:
-
-
統一:Spark能夠適應多種計算場景 (離線計算、實時計算、機器學習、圖計算、AI應用),一般公司在進行技術選型程序,spark首選
-
大資料分析引擎:Spark能夠分析資料,但是沒有存盤,一般線上的spark資料來源 (HDFS, Hive、Kafka、Flume、日志檔案、關系型資料庫、NoSQL資料庫),Spark資料出口(HDFS、Hive、Kafka、Redise、關系型資料庫、NoSQL資料庫)
-
分布式:Spark一般情況是以集群模式存在,架構 :Master/Slaver(主從結構)
-
應用場景
-
-
精準廣告推薦系統(Spark機器學習,一般在廣告或者電商公司應用)
-
金融風險管控系統 (對實時性要求比較,起碼毫秒級)
-
精細化運行系統 (CMS系統 、BI系統,重點:多維分析)
-
用戶畫像 (用戶資料畫像)
-
-
spark的好處
Spark是一個開源的類似于Hadoop MapReduce的通用的并行計算框架,Spark基于map reduce演算法實作的分布式計算,擁有Hadoop MapReduce所具有的優點;但不同于MapReduce的 是Spark中的Job中間輸出和結果可以保存在記憶體中,從而不再需要讀寫HDFS,因此Spark能更好地適用于資料挖掘與機器學習等需要迭代的map reduce的演算法,
Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生態系統,以彌補MapReduce的不足,
-
Spark特點
- 速度快
- 典型資料處理流程:Spark在使用程序中,會讀取HDFS上資料,并且會將HDFS中資料駐留在記憶體當中,將資料進行快取、在后續資料迭代操作程序能夠重用記憶體中的數,在邏輯回歸處理(演算法)中,Spark的速度要比Hadoop 理論上快100倍
- 與Hadoop的MapReduce相比,Spark基于記憶體的運算要快100倍以上,基于硬碟的運算也要快10倍以上,Spark實作了高效的DAG執行引擎,可以通過基于記憶體來高效處理資料流,

- Spark對程式員非常友好
- spark支持多種語言(Java、Scala、Python、R、SQL)
- Spark支持Java、Python和Scala的API,還支持超過80種高級演算法,使用戶可以快速構建不同的應用,而且Spark支持互動式的Python和Scala的shell,可以非常方便地在這些shell中使用Spark集群來驗證解決問題的方法,
- spark支持多種語言(Java、Scala、Python、R、SQL)
- Spark一站式解決方案
- 五大模塊
- SparkCore (處理離線資料)
- SparkSQL (主要用來做多維資料分析、以及互動式查詢)
- SparkStreaming (實時資料處理程式)
- Spark MLlib (機器學習 包含非常多演算法,相當于Spark提供的一個演算法)
- Spark Graphx (圖計算處理模塊)
- SparkCore (處理離線資料)
- 五大模塊
- 速度快
在開發Spark應用程式程序中,能夠同時使用以上所有模塊,以上模塊能夠無縫兼容
Spark提供了統一的解決方案,Spark可以用于批處理、互動式查詢(Spark SQL)、實時流處理(Spark Streaming)、機器學習(Spark MLlib)和圖計算(GraphX),這些不同類 型的處理都可以在同一個應用中無縫使用,Spark統一的 解決方案非常具有吸引力,畢竟任何公司都想用統一的平臺去處理遇到的問題,減少開發和維護的人力成本和部署平臺的物力成本,
- 兼容性
- Spark能夠兼容 (hadoop、hive、hbase、yarn、kafka、flume、redise、關系型資料等)
- Spark可以非常方便地與其他的開源產品進行融合,比如,Spark可以使用Hadoop的YARN和Apache Mesos作為它的資源管理和調度器,器,并且可以處理所有Hadoop支持的資料,包括HDFS、HBase和Cassandra等,這對于已經部署Hadoop集群的用戶特別重要,因為不需要做任何資料遷移就可以使用Spark的強大處理能力,Spark也可以不依賴于第三方的資源管理和調度器,它實作了Standalone作為其內置的資源管理和調度框架,這樣進一步降低了Spark的使用門檻,使得所有人都可以非常容易地部署和使用Spark,此外,Spark還提供了在EC2上部署Standalone的Spark集群的工具,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/226109.html
標籤:其他
上一篇:一條Sql的Spark之旅
下一篇:MYSQL觸發器的使用
