Spark RDD

RDD是Spark對數據的抽象,本文將介紹它與MapReduce的區別以及它的優點分佈式

MapReduce存在的問題

  • MapReduce上的迭代操做

clipboard.png

能夠看到一個MapReduce做業處理的結果只能存放在硬盤當中,當另外一個MapReduce做業去讀取這個結果時又得從硬盤讀取到內存中,這就產生了大量的數據複製,磁盤I/O,數據的序列化操做,這些多餘的操做就使得整個計算系統變慢。spa

  • MapReduce上的交互操做

clipboard.png

是一樣每次查詢數據都須要到磁盤裏讀取數據ip

使用RDD的操做模型及優點

  • RDD的迭代操做

clipboard.png

能夠看到它將一個MapReduce做業的中間結果放到了內存當中,這樣別的做業來讀取所依賴的結果時速度很快。當內存不夠時,它一樣會將數據存放到磁盤當中。內存

  • RDD的交互操做

clipboard.png

當不一樣的查詢都須要一個數據集的時候,直接從內存查詢就足夠了,當一個數據集被多個做業同時須要時它也支持將數據複製到各個機器上面it

總而言之RDD是一個分佈式的(基於HDFS)存儲在內存中的數據集,使數據以更少的開銷在不一樣的做業上共享,提升並行計算的效率class

相關文章
相關標籤/搜索