Hadoop 是 Apache 軟件基金會(Apache Software Foundation)因應 Cloud Computing 與 大數(shù)據(jù)發(fā)展所開發(fā)出來的技術,Hadoop 使用 Java 撰寫,并免費開放塬始碼,在此背景之下,就足以讓 Hadoop 在資訊技術發(fā)展史上占有一席之地。
像 Yahoo 就利用 Hadoop Framework 的技術,建立網(wǎng)頁索引資料庫的計算,同時使用 1 萬個 Linux 平臺的處理器核心,處理 1 兆個網(wǎng)頁連結,從 4PB 的資料,運算得出 300TB 的索引數(shù)據(jù)。
然而,盛名之下必有所累 -- 關于 Hadoop 的應用迷思也隨之而起。而這些迷思可能會導致企業(yè)的資訊部門決策者一廂情愿/過于樂觀地制定相關決策。
資料與資料的使用量正以驚人的速度持續(xù)增長中,IDC(The International Data Corporation)在 2013 年 1 月所釋出的分析報告就指出 -- 今年在資料儲存部份的增長速度將達到 53.4%,而 AT&T 也指出 -- 無線資料的流量在過去的 5 年內增加了 200 倍。
在 IDC 針對 2012-2016 年亞太區(qū)(不含日本)大數(shù)據(jù)市場所做的分析與預測報告:「APEJ 大數(shù)據(jù)Technology and Services 2012-2016 Forecast and Analysis」指出,亞太區(qū)的 大數(shù)據(jù)市場規(guī)模預估將從 2012 年的 3 億美金成長到 2016 年的 17.6 億美元,年復合成長率達 47%;而臺灣的市場規(guī)模則從 2012 年的 1.13 千萬美元成長到 2016 年的 4.61 千萬美元,年復合成長率亦達到 40%。
所以,如果你也重視自己所擁有的對外互動管道的話,你會發(fā)現(xiàn)來自網(wǎng)路的內容、電子郵件、App 訊息、社交訊息等數(shù)量正顯著地增加中,這也是為什么 從 McKinsey 到 Facebook 到 Walmart 等企業(yè)都將 大數(shù)據(jù)的應用視為營運的重點之一。
但是,大數(shù)據(jù)會不會如同 90 年代的網(wǎng)路泡沫化與 2000 年的 Web 2.0 泡沫化一樣,讓一些決策者做出斲傷企業(yè)的假設與決策?
Hadoop 目前無疑是企業(yè)們用來因應 大數(shù)據(jù)需求的主要投資項目之一,像 Facebook、Yahoo 這些大企業(yè)都宣稱自己在應用 Hadoop 來處理 大數(shù)據(jù)分析上有相當良好的成效,這將使得之后面臨 大數(shù)據(jù)問題的企業(yè)會起而效尤。
然而,這會不會造成 Functional Fixedness(是指有時候人們會受制于過去的經(jīng)驗,自覺/不自覺地認定某個事物只具備某種特定功能用途,而習以為常地只朝特定方向去思索的認知結構) 的認知偏差呢?
接著,就讓我們跟隨在云端服務領域已有多年經(jīng)驗的 Adam Bloom,帶領我們從幾個不同面向來看 Hadoop / 大數(shù)據(jù)的應用。
大數(shù)據(jù)僅僅只是數(shù)據(jù)量爆增(Volume)的問題而已?
到目前為止,對于 大數(shù)據(jù)尚未有統(tǒng)一的定義,因此,除了數(shù)據(jù)資料量的增加之外,你還會經(jīng)常聽到一些科技領導廠商與研究機構所提出的幾個關于 大數(shù)據(jù)的特性,像是像是 Variety(異質資料多樣性,指的是結構性、半結構性與非結構性資料,包含文字、影音、網(wǎng)頁、串流等)、Velocity(即時性)和 Value(價值)等。
大數(shù)據(jù)的特性并不只是數(shù)量上的成長 —— 事實上,它正朝向用更好的方法,來達成在最佳時間內分析整合來自企業(yè)內部分散各地的結構性 (Structured)/非結構性(Unstructured sources)資料,以探勘出隱藏的價值,提供給企業(yè)決策者做決策的參考依據(jù)。
處理結構化資料的 SQL 無法在 Hadoop 上使用?
當 Facebook、Twitter、Yahoo 等科技龍頭企業(yè),都選擇 Hadoop 來處理自家內部大量資料的分析的同時,表示他們瞭解 Hadoop 主要是用來處理非結構化資料,因此,HDFS 和 MapReduce 在處理結構化的資料上就必須選擇像 Hive、Pig與 Sqoop 等為工具。
由于 SQL 發(fā)展的歷史已經(jīng)超過 25 年了,這表示現(xiàn)在的許多資料是透過 SQL 來做管理的,Hadoop 的掘起雖然是時勢所驅,但,這并不表示我們已經(jīng)不再需要 SQL,更何況這兩者的功能是互補的,因此,有些企業(yè)開始致力于 Hadoop 與 SQL 的相容性開發(fā),以使其能發(fā)揮綜效。
例如,EMC Greenplum 所發(fā)佈的 Pivotal HD 的元件 HAWQ 就是一個很棒的例子 ── 它是一個與 SQL 相容的平行查詢引擎,速度比 Hadoop 查詢引擎要快上 10 – 100倍之多,而且能夠處理 PB 規(guī)模的資料量。
Hadoop 將取代大型主機(Mainframe),成為唯一的 IT 資訊平臺?
實務中,企業(yè)裡的 IT 產(chǎn)品組合中,有很多是需要長期投資的項目,像用來做伺服器的大型主機就應該跟隨著企業(yè)系統(tǒng)(如,ERP、CRM、SCM 等)的演進而做適當?shù)恼{整。
資訊決策者若不想汰換大型主機,或還無法就現(xiàn)有的資訊架構做調整,就必須賦予它新的定位與存在的價值。
像我們公司有不少客戶在大型主機的運作上都遇到了速度、規(guī)模與成本的問題,但還是有方法可以解決這些問題的,例如,VMware 的云端計算應用平臺 vFabric SQLFire,就是利用虛擬化技術來處理大量資料,并藉由分散式快取技術節(jié)省磁碟存取次數(shù),進而達到降低延遲時間與分散系統(tǒng)負荷的目的。
虛擬化技術對效能提升有幫助嗎?
Hadoop 最初的設計只是在實體伺服器上運行,然而隨著行動商務與網(wǎng)路商機的發(fā)展,為了能更方便分享及取用資料,企業(yè)紛紛把資料從大型主機轉移到 Web 服務供應商的資料中心(Data Center);而服務供應商為了提供更穩(wěn)定與更迅速的服務,也需要一個新的服務架構,把運算資源與儲存空間做更有效率的利用。
隨著云端服務的興起,許多企業(yè)開始希望 Hadoop 能把上述的需求整合在一起,以延伸傳統(tǒng)資料中心的功能。而基于成本與效能的考量,虛擬化技術也開始受到重視。
為什么企業(yè)需要虛擬化技術?
我們首先考慮到的就是:彈性。你可以想像,如果我們能夠動態(tài)地調整計算資源,就能夠將大量且復雜的計算程序自動拆解成多個較小的子程序,再由多部伺服器所組成的叢集進行分散和平行計算分析,將處理結果回傳給云端使用者。
也就是虛擬化技術能讓電腦分工合作,讓系統(tǒng)的運作與使用者利用資訊的方式更有效率。
資訊架構也可以透過租賃方式取得?
2012 年, 被 VMware(虛擬化技術應用大廠之一,同時也是云端計算發(fā)展的領導企業(yè)之一)收購的 Cetas,是一家提供軟件即服務(Software as a Service, SaaS)基礎架構的云端服務廠商。
Cetas 所提供的云端服務,讓他的企業(yè)用戶不需要花大量的時間與費用來建置專屬的資料中心(Data Center),透過其所提供的服務就可以在云端上運行 Hadoop、SQL 與資料的即時分析(Real-Time Analytics),取得自己所需要的設備與技術服務,而不必再自己從無到有評估軟件授權、硬體與軟件建置/安裝/升級等。
對于建立公有云(Public Cloud,通常與「租賃」有關,也就是建立云端資料中心后,不只是提供自己使用,還可以把多余的運算資源分租給別人,也就是透過收取費用把云端資料中心的服務與資源「分享」給其他對象)的企業(yè)來說,使用 Java 的開發(fā)人員,或許可以從 VMware 針對 Apache Hadoop 所推出的 Spring Data 產(chǎn)品,以及從 GitHub 所提供的線上版本控制服務所提供的免費/付費資源中獲益。
虛擬化技術只會提高企業(yè)的成本?
Hadoop 通常在商用伺服器上運行,因此有人會認為新增虛擬層(Virtualization Layer)除了會帶來額外的成本支出之外,能不能獲得對等的價值回饋還是一個未知數(shù)。然而,這個觀點其實存在缺失 -- 實務中,資料和資料分析都是進行動態(tài)處理的,而動態(tài)處理的機制要做到好還要更好,所耗費的資源是非常可觀的。
如果你希望藉由 Hadoop 這個工具來平衡企業(yè)內部因應 大數(shù)據(jù)所帶來的問題,舉凡資訊架構的調整,增進系統(tǒng)間互動的效率,資料探勘所帶來的創(chuàng)新價值等,你就必須瞭解企業(yè)內部的資料是存放在不同的位置與系統(tǒng)中的,以及為了進行分析這些分散的資料所必須花費的時間與速度等。
導入虛擬化的資訊基礎架構可以減少你不斷採購硬體所占用的土地面積,而且,它會讓企業(yè)的 CAPEX(Capital Expenditures,資本支出)和採購非虛擬的設備相差不多,但,透過虛擬化技術,卻能讓使用者享受到比傳統(tǒng)資料傳輸方式更為快速、簡單且更優(yōu)惠的好處,進而降低企業(yè)的 OPEX(Operating Expense,運營成本)。
Hadoop 無法在 SAN(Storage Attachment Network)或 NAS(Network Attached Storage)架構中運行?
Hadoop 通常都在區(qū)域性的磁碟上運行,但中小型的叢集在共用的 SAN 環(huán)境裡,運行的效能也不錯,但這視叢集的成本和效能而有不同。
另外,高頻寬的網(wǎng)路,像 10 GB 的乙太網(wǎng)路、 FoE(Power over Ethernet,指透過網(wǎng)路線來獲取電力)、iSCS I(Internet SCSI,將傳統(tǒng)上只能用于本機傳輸?shù)?SCSI 協(xié)定,可以透過 TCP/IP 網(wǎng)路承載,以達到資料高速傳輸?shù)男枨?等都有益于效能的提升。
備註:(1) SAN,是一種連接外接儲存設備和伺服器的架構,特點是,連接到伺服器的儲存設備,將被作業(yè)系統(tǒng)視為直接連接的設備;(2) NAS,是將儲存設備透過一臺用來進行資料存取的檔案伺服器直接連到區(qū)域網(wǎng)路上,因此,企業(yè)內其他的伺服器就不須同時兼負資料存取的動作,藉以優(yōu)化效能。
本文主要的目的在于,藉由以上所提及的幾項思考,能協(xié)助對 Big Data應用有興趣你,用更客觀的角度來看待相關的問題。 Hadoop只是一個用來協(xié)助處理大量數(shù)據(jù)分析的工具之一,它并不是市場中唯一的選擇,你應該依據(jù)實際的需求與環(huán)境來採購適合企業(yè)的應用工具,所以,如果你面臨的是處理大量數(shù)據(jù)的時效性(Velocity)問題,那么 GemFire 與 SQLFire 或許是最好的選擇。
而像 RabbitMQ 這類訊息導向(Message-Oriented)的中介軟件(Middleware),可以利用來在不同的程式語言、平臺、與電腦之間交換訊息。
當然,如果你期望將企業(yè)的產(chǎn)品更快地推向市場,可能就意味著你需要一個提供 SaaS 基礎建設的云端服務供應商,而 CETAS、Redis 更能滿足你的需求。