總結:目前數據流預算對兩種應用的處理並不高效,一種是:迭代式運算,這在圖運算和機器學習中應用很是常見。另外一種是:交互式數據挖掘工具。這兩種狀況下,數據存儲在內存中運算的速度回大大增長,rdd在迭代計算方面會比mapreduce快20倍,而且交互查詢很是快。可是rdd也存在缺點,rdd是高度受限的共享內存模型,是不可修改的,而且只能經過修改其餘rdd來批量生成。編程
第一章:緩存
1:rdd以前的情況:(1):已經開始普遍的應用高級編程分佈式數據處理模型來處理日益增加的數據,如:mapreduce和dryad,而且都會提供 位置感應性調度、容錯、負載均衡。而且大多數處理模型是基於高抽象的流失數據處理模型,模型處理數據的特色大概會遵循:穩定的物理存儲傳入一個由肯定性操做構成的DAG-->處理完成寫回穩定的存儲,可是這些不太適合"迭代計算"和"交互式數據挖掘工具",基於數據流的模型不明確支持工做集,須要將數據在每次查詢時重複的加載進內存進行運算。(2)隨之解決這個問題的彈性分佈式數據集(RDD)應運而生,同時具備數據流模型的特色:自動位置感應調度、自動容錯、可伸縮性。負載均衡
2:rdd特色:(1)rdd顯示的將數據緩存在內存中,極大的加速了後期工做集的重用;(2)高度受限的內存模型,只讀分區記錄,這些記錄只能經過特定的操做有其餘的rdd生成,這樣低成本的實現了容錯性。(3)rdd經過血統來重建丟失的分區。機器學習
3:spark介紹:(1)實現rdd稱爲spark;(2)spark經過scala實現,提供相似於dryadlinq的集成語言編程接口,並支持交互式數據查詢和鑽取。(3)在迭代時計算上spark比mapreduce快近20倍,數據分析報表快近40倍,同時能夠再5-7秒鐘交互式掃描1TB的數據。(4)而且rdd還提供了rddbg來支持調試功能。分佈式