有人說,巨量資料處理不是現在才有的問題,為什麼最近這幾年越炒越熱,最大的關鍵必須往前回溯到2003年,Google接連發表了兩篇論文,也就是「The Google File System」以及「MapReduce:Simplified Data Processing on Large Cluster」,這兩篇論文在2004年由現任Apache開源基金會主席Doug Cutting實作出DFS以及MapReduce的開源解決方案,也就是Hadoop平臺,在2009年由Cloudera公司正式推出Hadoop商業發行版本,同時也提供技術支援服務與專業認證,讓Hadoop正式走向商業化,使得巨量資料處理有了不同以往的技術與應用。

站在Google巨人的肩膀上發展,Hadoop勢如破竹

由於Hadoop架構源自於Google,而Google的技術在市場上享有一定地位,使得Hadoop的聲勢,猶如含著金湯匙出身一般,迅速竄起,近1年來以Hadoop為基礎延伸出來的應用套件也越來越多,逐漸構成一個完整的Hadoop生態體系,比如Pig腳本程式可用來簡化MapReduce開發、Hive可以SQL語法來存取Hadoop平臺的資料,Zookeeper則負責協調Hadoop分散運算,其他還有Mahout以及HBase等應用套件,都助長了Hadoop的發展與應用。

然而,企業對於Hadoop的認知,至今仍舊處在天秤的兩端,只有極少數企業深入了解Hadoop,而真正決定把Hadoop叢集架構視為巨量資料處理發展主軸者,更是少之又少。例如:為了因應巨量資料處理以後長期發展策略,有家高科技製造業者已經成立正式組織,部門成員由IT以及核心業務單位組成。此外,多數開始建置具巨量資料平臺的企業,都是採取先蹲後跳策略,普遍選擇把資料處理平臺先轉換成MPP架構,之後再視資料處理需求,進一步評估Hadoop或其他巨量資料處理解決方案。

影響企業採用Hadoop叢集架構的評估關鍵,是因為Hadoop技術太新,導致企業既有技術人力根本無法因應,而若要培養相關人力,企業往往需要從長計議,判斷未來是否有長期需求,才會決定是否培訓Hadoop技術人才。此外,由於Hadoop的技術還在演進,商業化的產品大都是第一代,企業在沒有充分了解Hadoop技術的情況下,目前的採用意願確實顯得保守,而且觀望氣氛濃厚。

Hadoop架構的兩大核心-MapReduce與HDFS

Hadoop架構的兩大核心,包括MapReduce與HDFS,其中HDFS是一個分散式檔案儲存系統,MapReduce則是處理巨量資料的程式平行運算架構。相較於傳統的程式開發模式,開發人員在寫MapReduce程式時,必須先分析待處理問題的解決流程,找出可以利用平行運算來處理資料的部分,再把這些資料拆解成多個小段分散處理,然後針對可以採用平行處理的部分寫成Map程式。有了Map程式之後,就可以使用大量機器執行Map程式來各自處理拆解後的每一小段資料,每一個Map程式得到運算結果再進行合併,最後才彙整出完整的資料處理結果。

目前市場上的Hadoop相關產品,至少有3類,除了Apache Hadoop之外,IBM等資訊廠商也相繼推出以Hadoop架構為基礎的產品,其中包括軟體解決方案以及一體機兩種形式。例如EMC的Greenplum Database與Greenplum Appliance、HP AppSystem for Apache Hadoop,以及Teradata即將在10月推出的Hadoop Appliance,同樣都是以MapReduce原理來分派資料運算任務,以提升巨量資料處理效能。

Hadoop較適合接近資料源頭的巨量資料處理

由於Hadoop迅速崛起,加上巨量資料處理的應用眼花撩亂,市場上不僅有Hadoop將是取代資料倉儲的說法,甚至以為Hadoop就是萬能的巨量資料處理平臺。對此,精誠Etu首席顧問陳昭宇表示,在巨量資料處理環節中,Hadoop與資料倉儲分別有不同的市場定位與強勢,企業可以根據需求搭配使用。

目前為止,Hadoop比較擅長的是演算邏輯單純但大量的離線資料處理,因此,越接近資料源頭的資料處理需求,越適合使用Hadoop,然而像交易資料與動態的即時資料處理,Hadoop並不擅長。為了補強Hadoop的不足,也有網路業者貢獻了即時資料分析的套件,如Twritter的Strom與Yahoo!的S4。

另外,陳昭宇表示,企業要導入Hadoop架構時,必須考量Hadoop擅長處理的資料特性,較適合演算邏輯單純的大量離線資料,因此,Hadoop的資料處理效能,除了取決資料量大小之外,叢集伺服器數量也是關鍵,系統效能瓶頸則往往出現在I/O、硬碟以及網路傳輸這幾個環節,而非處理器的效能。

陳昭宇指出,由於MapReduce程式是以批次來處理資料,通常一個任務的初始作業,大約需要1分鐘,待處理的程式經Data Master分散到Data Node運算完畢後,至少都是數小時之後,這是Hadoop的特性與限制。

為了補強Hadoop的不足,目前開源社群正在改寫程式,預計將能把任務分配的初始作業時間,從原本的1分鐘縮短到4秒鐘,目前這個版本已經開放給社群進行測試。


相關報導請參考「巨量資料在臺灣」

熱門新聞

Advertisement