Hadoop在工業大數據中的作用

大數據 Hadoop HBase MapReduce 大海滔滔 2017-06-08

現在,一談到大數據的技術,Hadoop都是繞不開的話題,似乎在項目中不使用Hadoop或者類似的分佈式數據庫技術,就不是大數據應用。那麼,到底在工業大數據應用中,沒有沒必要使用Hadoop,或者在什麼樣的應用環境中使用Hadoop才是適合的呢?

首先,讓我們來看一看Hadoop是什麼,它是為解決什麼問題而發展起來的。

簡單說,Hadoop是一個能夠對大量數據進行分佈式處理的軟件框架。它包含眾多的應用,其最核心的是分佈式文件系統HDFS(Hadoop Distributed File System)、分佈式計算框架MapReduce。2003年Google發表了一篇技術學術論文詳細講解了谷歌文件系統(GFS),2004年Google又發表了一篇技術學術論文講解了MapReduce。2004年Nutch創始人Doug Cutting基於Google的GFS論文實現了分佈式文件存儲系統名為NDFS。2005年Doug Cutting又基於MapReduce,在Nutch搜索引擎實現了該功能。2006 年 ,Apache將Map/Reduce 和 Nutch Distributed File System (NDFS) 分別被納入稱為 Hadoop 的項目中。從此,Hadoop作為開源界的分佈式大數據處理框架開始迅速流行起來。

Hadoop除了核心HDFS和MapReduce外,還有許多實現具體應用的子項目,其核心組件如下圖所示:

Hadoop在工業大數據中的作用

Hadoop核心組件

具體每個組件的功能我們改天另文介紹。今天主要談談Hadoop的優點和適用領域。Hadoop由於其自身的特點,在以下場景中有比較大的優勢:

1、存儲大量的半結構化的數據集。由於HDFS會將一個完整的大文件平均分塊存儲到不同計算機上,所以一個磁盤的失敗並不會帶來數據丟失。同時,在讀取文件時,系統也是同時從多個主機取不同區塊的文件,因此效率要比傳統數據庫高許多。

2、高效的分佈式計算。通過MapReduce,可以快速地跨多臺機器處理大型數據集合。實現高效的分佈式計算。

3、低廉的部署成本。Hadoop由於其分佈式架構,可以使用普通的廉價計算機組合成數據集群來實現以前只有大型高性能計算機實現的工作。

但是,在工業大數據領域,並不是所有場合都需要或者適宜使用Hadoop這樣的系統。

工業大數據項目一般有以下幾種情況:

一種是針對單一的生產企業內部建設的工業大數據項目,那麼,它的數據主要是企業內部的設備產生的監控數據,這些數據雖然相比傳統組態等應用量很大了,但是,並達不到需要分佈式計算這麼大的數據量和計算量。這種情況下,這部分數據可以選擇傳統的工業實時數據庫,或者使用Hadoop的組件Hbase,也可以使用基於Hbase的OpenTSDB,基本就可以滿足存儲、處理的需要。

另一種是大型集團企業內部的工業大數據項目,由於其監測的設備非常多,產生的數據量巨大,需要的運算量也巨大。那麼,可以考慮在集團公司部署Hadoop環境,或者使用公有云的Hadoop服務(比如阿里雲、百度雲、騰訊雲等),使用Hbase存儲監控數據,同時存儲大量的非結構化數據,在數據積累到一定程度時,再進行大數據的分析應用。

還有一種是針對企業銷售出去的產品建設的工業大數據項目,例如,某汽車企業將其所有的汽車進行聯網監測(特斯拉現在就在做這件事)。這樣的項目,尤其是大型企業的產品數量是海量的,其監測數據也是海量的,這種情況在目前比較適合的就是自行建設Hadoop環境。但是遠期看,隨著公有云技術的逐步成熟,與公有云服務商合作應該會是一種主流。

說白了,小型的項目,不太用得著分佈式計算,一般不建議使用Hadoop。當然,小型項目還是不是嚴格意義上的大數據項目也很難說。中型的項目,建議採用公有云提供的Hadoop環境,也不要自己搭建,成本和收益實在不成比例。大型的項目,當前的實際情況比較適合自行搭建Hadoop環境,遠期,除非是中移動、中石油這樣的巨無霸企業,還是搭建在公有云上為好。

相關推薦

推薦中...