複製鏈接
請複製以下鏈接發送給好友

離線計算

鎖定
離線計算就是在計算開始前已知所有輸入數據,輸入數據不會產生變化,且在解決一個問題後就要立即得出結果的前提下進行的計算。在大數據中屬於數據的計算部分,在該部分中與離線計算對應的則是實時計算。
中文名
離線計算
外文名
Offline calculation
基本釋義
在計算前已知全部輸入數據的計算
歸屬學科
大數據計算
常用計算框架
MapReduce
常用基礎架構
Hadoop
在離線計算中,使用 Hdfs存儲數據,使用 MapReduce 做批量計算,計算完成的數據如需數據倉庫的存儲,直接存入Hive , 然後從Hive進行展現。

離線計算離線計算特點

1) 數據量巨大且保存時間長;
2)在大量數據上進行復雜的批量運算;
3)數據在計算之前已經完全到位,不會發生變化;
4)能夠方便的查詢批量計算的結果;

離線計算區別

實時計算中,輸入數據是可以以序列化的方式一個個輸入並進行處理的,也就是説在開始的時候並不需要知道所有的輸入數據。而對於離線計算,在開始之前就必須知道所有的輸入數據。例如:當用户請求發送過來後進行處理或輸出結果的是實時計算,但在用户請求之前就將數據計算好的是離線計算。由於實時計算不能在整體上把握輸入數據,所以得出的結果可能不是最優解
同時,離線計算多用於模型的訓練和數據的預處理,最經典的就是Hadoop的MapReduce方式;而實時計算框架是要求立即返回計算結果的,快速響應請求,多用於簡單的累加計算和基於訓練好的模型進行分類等操作。

離線計算離線計算框架

Hadoop
Hadoop,是由Yahoo工程師,Apache基金會發起的,MapReduce分佈式計算框架+HDFS分佈式文件系統(GFS)+HBase數據存儲系統(BigTable)。數據分佈式存儲在磁盤各個節點,計算時各個節點讀取存儲在自己節點的數據進行處理。 [1] 
優點:
  1. 高可靠性。Hadoop按位存儲和處理數據的能力值得人們信賴。
  2. 高擴展性。Hadoop是在可用的計算機集簇間分配數據並完成計算任務的,這些集簇可以方便地擴展到數以千計的節點中。
  3. 高效性。Hadoop能夠在節點之間動態地移動數據,並保證各個節點的動態平衡,因此處理速度非常快。
  4. 高容錯性。Hadoop能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配。
  5. 低成本。與一體機、商用數據倉庫以及QlikView、Yonghong Z-Suite等數據集市相比,hadoop是開源的,項目的軟件成本因此會大大降低。 [2] 
適用場景:離線大批量數據處理;不需要多次迭代
Spark
由UC Berkley AMP Lab,Apache基金會發起,專為大規模數據處理而設計的快速通用的計算引擎 [3]  。它基於內存計算的並行計算框架,使用內存來存儲數據,RDD(彈性分佈式數據集),用户可以指定存儲策略,當內存不夠的時候可以放到磁盤上。
特點
首先,高級 API 剝離了對集羣本身的關注,Spark 應用開發者可以專注於應用所要做的計算本身。
其次,Spark 很快,支持交互式計算和複雜算法。
最後,Spark 是一個通用引擎,可用它來完成各種各樣的運算,包括 SQL 查詢、文本處理、機器學習等,而在 Spark 出現之前,我們一般需要學習各種各樣的引擎來分別處理這些需求。 [4] 
適用場景:離線快速的處理,不能用於處理需要長期保存的數據;適用於多次迭代的計算模型(機器學習模型)

離線計算MapReduce

Hadoop的框架最核心的設計就是:HDFSMapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。 [5] 
MapReduce 的編程模型,它適用於大規模數據集的並行運算。其基本思想是將問題分解成 Map ( 映射) 和 Reduce ( 化簡) ,Map 程序將數據分割獨立區塊,利用計算機羣實現分佈式處理,最後通過Reduce 程序將結果彙總整合輸出。MapReduce 的作業流程是任務的分解與集合的彙總。 [6] 

離線計算HDFS

Hadoop分佈式文件系統(HDFS)被設計成適合運行在通用硬件(commodity hardware)上的分佈式文件系統。它和現有的分佈式文件系統有很多共同點。但同時,它和其他的分佈式文件系統的區別也是很明顯的。HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。HDFS放寬了一部分POSIX約束,來實現流式讀取文件系統數據的目的。HDFS在最開始是作為Apache Nutch搜索引擎項目的基礎架構而開發的。HDFS是Apache Hadoop Core項目的一部分。
HDFS有着高容錯性(fault-tolerant)的特點,並且設計用來部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有着超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以實現流的形式訪問(streaming access)文件系統中的數據。 [7] 
參考資料
  • 1.    劉軍. Hadoop大數據處理[M]. 人民郵電出版社, 2013.
  • 2.    任仁. Hadoop在大數據處理中的應用優勢分析[J]. 電子技術與軟件工程, 2014(15):194-194.
  • 3.    Spark 技術文檔  .Apache軟件基金會官網[引用日期2017-06-27]
  • 4.    Holden Karau ... [等. Spark快速大數據分析[M]. 人民郵電出版社, 2015.
  • 5.    何婕. 基於Hadoop的數據存儲系統的分析和設計[J]. 商情, 2015:137-138.
  • 6.    龔強. 雲計算關鍵技術之編程模型認知研究[J]. 信息技術,2015,01:1-3.
  • 7.    Hadoop分佈式文件系統:架構和設計   .Apache軟件基金會官網[引用日期2017-06-27]