㈠ 2分鍾讀懂大數據框架Hadoop和Spark的異同
1、 Spark VSHadoop哪些異同點
Hadoop:布式批處理計算強調批處理用於數據挖掘、析
Spark:基於內存計算源集群計算系統目讓數據析更加快速, Spark 種與 Hadoop 相似源集群計算環境兩者間存些同處些用同處使 Spark 某些工作負載面表現更加優越換句說Spark 啟用內存布數據集除能夠提供互動式查詢外優化迭代工作負載
Spark Scala 語言實現 Scala 用作其應用程序框架與 Hadoop 同Spark Scala 能夠緊密集其 Scala 像操作本集合象輕松操作布式數據集
盡管創建 Spark 支持布式數據集迭代作業實際 Hadoop 補充 Hadoop 文件系統並行運行通名Mesos第三集群框架支持行Spark 由加州伯克利校 AMP 實驗室 (Algorithms,Machines,and People Lab) 發用構建型、低延遲數據析應用程序
雖 Spark 與 Hadoop 相似處提供具用差異新集群計算框架首先Spark 集群計算特定類型工作負載設計即些並行操作間重用工作數據集(比機器習算)工作負載優化些類型工作負載Spark 引進內存集群計算概念內存集群計算數據集緩存內存縮短訪問延遲.
數據處理面相信家hadoop已經耳熟能詳基於GoogleMap/Rece實現Hadoop發者提供map、rece原語使並行批處理程序變非簡單優美Spark提供數據集操作類型種像Hadoop提供MapRece兩種操作比map,filter, flatMap,sample, groupByKey, receByKey, union,join, cogroup,mapValues, sort,partionBy等種操作類型些操作稱Transformations同提供Count,collect, rece, lookup, save等種actions些種數據集操作類型給層應用者提供便各處理節點間通信模型再像Hadoop唯Data Shuffle種模式用戶命名物化控制間結區等說編程模型比Hadoop更靈.
2、Spark容錯性面否比其工具更優越性
Spark論文《Resilient Distributed Datasets: AFault-TolerantAbstraction for In-Memory Cluster Computing》沒看容錯性做倒提布式數據集計算做checkpoint兩種式checkpoint dataloggingthe updates貌似Spark採用者文提雖者看似節省存儲空間由於數據處理模型類似DAG操作程由於圖某節點錯由於lineage chains依賴復雜性能引起全部計算節點重新計算本低說存數據存更新志做checkpoint由用戶說算吧相於都沒說皮球踢給用戶所我看由用戶根據業務類型衡量存儲數據IO磁碟空間代價重新計算代價選擇代價較種策略取代給間結進行持久化或建立檢查點Spark記住產某些數據集操作序列節點現故障Spark根據存儲信息重新構造數據集認錯其節點幫助重建
3、Spark於數據處理能力效率哪些特色
Spark提供高性能數據處理能力使用戶快速反饋體驗更另類應用做數據挖掘Spark充利用內存進行緩存利用DAG消除必要步驟所比較合適做迭代式運算相部機器習算通迭代收斂算所適合用Spark實現我些用算並行化用Spark實現R語言便調用降低用戶進行數據挖掘習本
Spark配流數據處理模型與Twitter Storm框架相比Spark採用種趣且獨特辦Storm基本像放入獨立事務管道其事務布式處理相反Spark採用模型收集事務短間內(我假設5秒)批處理式處理事件所收集數據自RDD使用Spark應用程序用組進行處理作者聲稱種模式緩慢節點故障情況更加穩健且5秒間間隔通於數應用已經足夠快種統流式處理與非流式處理部
總結
幾看Hadoop權威指南、hbase權威指南、hive權威指南、規模布式存儲系統、zoopkeeper、數據互聯網規模數據挖掘與布式處理等書同補充能靜完整看完本書相錯
㈡ 大數據時代,為什麼使用Spark框架
解決問題的層面不一樣
首先,Hadoop和Apache Spark兩者都是大數據框架,但是各自存在的目的不盡相同。Hadoop實質上更多是一個分布式數據基礎設施:
它將巨大的數據集分派到一個由普通計算機組成的集群中的多個節點進行存儲,意味著您不需要購買和維護昂貴的伺服器硬體。
同時,Hadoop還會索引和跟蹤這些數據,讓大數據處理和分析效率達到前所未有的高度。Spark,則是那麼一個專門用來對那些分布式存儲的大數據進行處理的工具,它並不會進行分布式數據的存儲。
兩者可合可分
Hadoop除了提供為大家所共識的HDFS分布式數據存儲功能之外,還提供了叫做MapRece的數據處理功能。所以這里我們完全可以拋開Spark,使用Hadoop自身的MapRece來完成數據的處理。
相反,Spark也不是非要依附在Hadoop身上才能生存。但如上所述,畢竟它沒有提供文件管理系統,所以,它必須和其他的分布式文件系統進行集成才能運作。這里我們可以選擇Hadoop的HDFS,也可以選擇其他的基於雲的數據系統平台。但Spark默認來說還是被用在Hadoop上面的,畢竟,大家都認為它們的結合是最好的。
以下是天地會珠海分舵從網上摘錄的對MapRece的最簡潔明了的解析,其中把人理解成計算機就好了:
我們要數圖書館中的所有書。你數1號書架,我數2號書架。這就是「Map」。我們人越多,數書就更快。
現在我們到一起,把所有人的統計數加在一起。這就是「Rece」。
Spark數據處理速度秒殺MapRece
Spark因為其處理數據的方式不一樣,會比MapRece快上很多。MapRece是分步對數據進行處理的:
」從集群中讀取數據,進行一次處理,將結果寫到集群,從集群中讀取更新後的數據,進行下一次的處理,將結果寫到集群,等等...「 Booz Allen
Hamilton的數據科學家Kirk Borne如此解析。
反觀Spark,它會在內存中以接近「實時」的時間完成所有的數據分析:「從集群中讀取數據,完成所有必須的分析處理,將結果寫回集群,完成,」
Born說道。Spark的批處理速度比MapRece快近10倍,內存中的數據分析速度則快近100倍。
如果需要處理的數據和結果需求大部分情況下是靜態的,且你也有耐心等待批處理的完成的話,MapRece的處理方式也是完全可以接受的。
但如果你需要對流數據進行分析,比如那些來自於工廠的感測器收集回來的數據,又或者說你的應用是需要多重數據處理的,那麼你也許更應該使用Spark進行處理。
大部分機器學習演算法都是需要多重數據處理的。此外,通常會用到Spark的應用場景有以下方面:實時的市場活動,在線產品推薦,網路安全分析,機器日記監控等。
㈢ 大數據時代,為什麼使用Spark框架
Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎。Spark是UC Berkeley AMP lab (加州大學伯克利分內校的AMP實驗室容)所開源的類Hadoop MapRece的通用並行框架,Spark,擁有Hadoop MapRece所具有的優點;但不同於MapRece的是Job中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的MapRece的演算法。
Spark 是一種與 Hadoop 相似的開源集群計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了內存分布數據集,除了能夠提供互動式查詢外,它還可以優化迭代工作負載。
Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數據集。