本刊記者/張貝貝
Hadoop寶刀未老
本刊記者/張貝貝
隨著越來越多新的開源技術的出現(xiàn)和應用,Hadoop似乎已經過了起初的“瘋漲”期并逐步回歸理性,但這并不意味著Hadoop這只黃色的“小象”過時了,企業(yè)基于Hadoop的開源平臺部署大數(shù)據(jù)炙手可熱。
Hadoop作為Apache軟件基金會管理的開源軟件平臺,正在步入穩(wěn)步、理性增長的階段,越來越多的企業(yè)開始利用Hadoop落實在大數(shù)據(jù)、云計算方面的應用。當然,和其他開源技術一樣,隨著更多人使用,更多人貢獻,開源社區(qū)才能不斷完善,而如此良性循環(huán)才會促進更多開源技術的持續(xù)繁榮。如此說來,Hadoop與眾多技術一樣,也同樣面臨著自身的新陳代謝和相關新技術的挑戰(zhàn)。
Hadoop的誕生是與大數(shù)據(jù)緊緊綁定在一起的,為什么會這么說呢?這要從2002年說起,Hadoop的創(chuàng)始人Doug Cutting和Mike Cafarella開始開發(fā)一個網絡搜索引擎:Nutch。但是,他們很快意識到最初的實現(xiàn)無法擴展。隨后在2003到2004年,Google的兩篇文章GFS(分布文件系統(tǒng))和MapReduce(分布計算)橫空出世。GFS介紹如何實現(xiàn)分布式地存儲海量數(shù)據(jù);MapReduce介紹如何對分布式大規(guī)模數(shù)據(jù)進行處理。很快Nutch實現(xiàn)算法被移植到使用MapReduce和NDFS (Nutch Distributed File System)來運行。2006年,他們從Nutch轉移出來成為一個獨立的Lucene子項目,稱為Hadoop。2008年,Hadoop已成為 Apache頂級項目,隨后打破世界紀錄,成為最快排序1TB數(shù)據(jù)的系統(tǒng)。運行在一個910節(jié)點的群集,Hadoop在209秒內排序1TB的數(shù)據(jù)(還不到三分半鐘)。由此,Hadoop作為一種開源的適合大數(shù)據(jù)的分布式存儲和處理平臺誕生了。
對于Hadoop,Apache給出的正式定義是:Hadoop被設計成能夠從單臺服務器擴展到數(shù)以千計的服務器,每臺服務器都有本地的計算和存儲資源。Hadoop的高可用性并不依賴硬件,其代碼庫自身就能在應用層偵測并處理硬件故障,因此能基于服務器集群提供高可用性的服務。
如果從定義中解讀Hadoop的特征,可以看出:Hadoop是一個開源的框架,能夠進行大規(guī)模數(shù)據(jù)集的分布式處理;Hadoop可用計算機集群存儲海量數(shù)據(jù),具有能夠檢測和處理應用層錯誤的能力;Hadoop幾乎完全是模塊化的,架構靈活且保持高效。值得肯定的是,這些特征都為近年來火熱的大數(shù)據(jù)應用落地起到了關鍵作用。于是,在某種意義上講,大數(shù)據(jù)與Hadoop可以相提并論。
隨著人類逐步進入大數(shù)據(jù)時代,海量的數(shù)據(jù)處理對現(xiàn)有軟硬件系統(tǒng)提出了更高的要求,利用Hadoop構建的處理海量數(shù)據(jù)的分布式系統(tǒng)具有高容錯性、可伸縮性、低成本和良好的擴展性等特點。盡管目前大數(shù)據(jù)技術還未形成統(tǒng)一標準,但業(yè)界已廣泛使用Hadoop分布式系統(tǒng)作為云計算平臺。
星環(huán)信息科技(上海)有限公司聯(lián)合創(chuàng)始人兼首席技術官孫元浩
Hadoop的關鍵技術主要涉及分布式文件系統(tǒng)HDFS、分布式并行計算模型MapReduce和分布式數(shù)據(jù)庫HBase。最初在互聯(lián)網領域應用范圍較廣,包括Web搜索、廣告系統(tǒng)、數(shù)據(jù)分析、機器學習、網頁數(shù)據(jù)挖掘等許多任務都在Hadoop平臺上運行。
到現(xiàn)在Hadoop已有16個年頭,這對于一個實用技術的穩(wěn)定發(fā)展已足夠長久。事實上,不但在互聯(lián)網領域,更在工業(yè)、商業(yè)、通信、金融、傳媒等存在久遠。
比如,零售業(yè)追蹤和分析用戶行為,提升客戶體驗、生產線上巨量傳感器數(shù)據(jù)的接收分析、通信系統(tǒng)全程全網的實時日志文件采集與分析、醫(yī)療系統(tǒng)密集數(shù)據(jù)采集與分析,從而幫助快速地科學診斷……所有這些都需要新型的數(shù)據(jù)處理技術來支撐。Hadoop在這些領域突顯了強大的競爭力,并在國內外的相關實踐中獲得廣泛應用。
雖然在社交媒體的幫助下,零售商可以很容易地與客戶進行溝通,但與社交媒體相比,Hadoop的出現(xiàn)使零售商與客戶之間的互動變得更加容易。客戶可直接進行意見反饋,廣告可根據(jù)狀態(tài)和搜索條件進行更為精準地投放。Hadoop能夠掃描和存儲交易數(shù)據(jù),識別客戶生活周期的不同階段,幫助零售商降低庫存成本,增加銷量,吸引和維持客戶群數(shù)量。
對于零售商來說,重要的是清楚公眾對他們品牌的態(tài)度,這樣能夠有針對性地調整促銷、廣告、位置和相關策略。Hadoop可幫助存儲和處理這些來自社交媒體網站和瀏覽器搜索的信息,從而提升零售商的實時洞察力。
在通用電氣公司,數(shù)字媒體小組和Hadoop小組通力合作,為高度依賴高級情感分析功能的營銷部門開發(fā)了一款交互式應用軟件。此舉目的在于,讓營銷小組能夠通過通用電氣開展的各項活動,評估外界對通用電氣所持的看法(正面看法、中立看法或負面看法)。Hadoop負責支持該應用軟件的情感分析部分,這部分對Hadoop來說是一種高度密集的文本挖掘應用環(huán)境??傮w來看,通用電氣的情感分析項目取得了重大成功,利用數(shù)據(jù)挖掘以及新平臺所帶來的一種新洞察力方面有了大幅改進,也為這家公司的下一代深度數(shù)據(jù)挖掘、分析和可視化等項目奠定了基礎。
IBM開源大數(shù)據(jù)分析系統(tǒng)產品總監(jiān)Steven Sit
在十幾年的發(fā)展中,基于Hadoop平臺的大數(shù)據(jù)應用也遭遇了一些挑戰(zhàn),特別是企業(yè)級用戶在落地方面出現(xiàn)了一些問題和困難,這也說明沒有一個技術是完美的。對此,星環(huán)信息科技(上海)有限公司創(chuàng)始人兼首席技術官孫元浩有很深的感觸。由于孫元浩創(chuàng)辦的星環(huán)科技自成立到現(xiàn)在一直從事大數(shù)據(jù)核心平臺數(shù)據(jù)庫軟件的研發(fā)與服務,所以在與眾多企業(yè)級客戶接觸過程中深刻地感受到Hadoop應用中的難點和挑戰(zhàn)。
一是當前的Hadoop開源版本易用性差,工具鏈上有很多環(huán)節(jié)缺失,需要通過彌補才能完善使用。對此,孫元浩認為,首先是因為缺乏完整的SQL支持,如果沒有完整的SQL支持,已有的應用很難遷移過來,新的應用很難開發(fā)。“一個銀行的客戶,過去很多風控模型都是用SQL編寫的,這些SQL模型已積累了很多年,現(xiàn)在已很少人能夠理解這個模型原來的語義了,維護起來很困難。但當客戶希望更換一個新的架構來運行的時候卻發(fā)現(xiàn),如果沒有好的SQL支持,他們很難再把應用遷到新的平臺上;第二,我們發(fā)現(xiàn)Hadoop中間是一個核心,中間有了一層SQL支持以后,上面的應用開發(fā)人員還需要一個完整的標準接口來訪問這個數(shù)據(jù)庫、新的數(shù)據(jù)架構,這些數(shù)據(jù)接口本身也并不完善;第三,由于開發(fā)人員借助豐富的中間件開發(fā)應用程序,不過這些中間件有些不能與Hadoop對接,應用開發(fā)人員在使用Hadoop過程中會面臨很多不便。雖然很多廠商已經開始實現(xiàn)這些工具和Hadoop的對接,但是并非所有的功能都可運行在Hadoop上,為了實現(xiàn)更好的對接,各大工具廠商竭盡所能,使Hadoop的易用性逐漸提高?!?/p>
關于Hadoop的易用性,IBM開源大數(shù)據(jù)分析系統(tǒng)產品總監(jiān)Steven Sit也提出了自己的思考,Hadoop社區(qū)在功能方面變得越來越成熟,但是在不同廠商之間的互操不太方便。于是就有了開放數(shù)據(jù)平臺(Open Data Platform,ODP)的成立,其目標就是要進一步加強各個廠商之間的相互操作,特別是在Hadoop的堆棧上進行更好的相互操作。在未來如果一個企業(yè)實施一個Hadoop的解決方案,只要是在聯(lián)盟的平臺上,便能夠確保這是一個互相認證的平臺,能夠讓各廠商之間的相互操作變得很好。
Hadoop的第二個重要挑戰(zhàn)是數(shù)據(jù)一致性。如果不解決這個問題,大數(shù)據(jù)就無法在關鍵應用中得到順利的使用。據(jù)介紹,數(shù)據(jù)倉庫主要分成兩種,一種是傳統(tǒng)的數(shù)據(jù)倉庫,另一種是實時的數(shù)據(jù)倉庫。在第一種場景當中通常是數(shù)據(jù)批量的導入到數(shù)據(jù)倉庫當中,初次是批量導入,隨后每隔一天或者幾個小時把增量數(shù)據(jù)導入到傳統(tǒng)數(shù)據(jù)倉庫當中,需要對數(shù)據(jù)倉庫進行修改或者插入。而對于最新的實時數(shù)據(jù)倉庫來說,需要對這個數(shù)據(jù)進行實時插入和更新,這兩個應用使得對數(shù)據(jù)平臺的要求不大一樣。
“我們發(fā)現(xiàn),從本身來講,批量更新通常是多個客戶端、多個服務器同時對多臺服務器進行更新,這樣的操作我們稱之為全球的分布式事務。例如,對一張已有的表進行插入和更新,根據(jù)用戶原來的一些指標更新風險值或者信用值,這樣的應用場景需要保證它的一致性,也意味著在操作的時候,要么就全部成功,要么就全部失敗,不能因為一臺機器出現(xiàn)故障,導致數(shù)據(jù)的不一致,這給很多金融類客戶造成了困擾?!睂O元浩說道。
三是技術人才方面的匱乏。很多客戶都基于大數(shù)據(jù)的應用成立大數(shù)據(jù)分析部門,此團隊通常需要三類人:第一類是需要對Hadoop比較了解,能夠對數(shù)據(jù)進行加工、進行抽取編程的人。第二類是熟悉各類算法,能夠對算法進行復雜應用、進行建模的人。第三類是業(yè)務人員,需要從業(yè)務角度提出一些需求。這三部分是必不可少的。那么問題來了,多種不同類型的人對數(shù)據(jù)進行挖掘、發(fā)現(xiàn)它的價值,最佳的方案是要簡化,提供統(tǒng)一的語言、統(tǒng)一的工具,甚至業(yè)務人員都可以直接使用這個工具進行數(shù)據(jù)挖掘,這就提出了真正促進數(shù)據(jù)挖掘成為主流應用的方式?,F(xiàn)實是在市場上找到這些技術人才并非容易。
總體來看,孫元浩提出的三大挑戰(zhàn),其中兩大挑戰(zhàn)是如何訪問海量數(shù)據(jù),通過SQL和R語言,讓數(shù)據(jù)統(tǒng)計和數(shù)據(jù)挖掘變得更加可用、易用。但傳統(tǒng)關鍵數(shù)據(jù)庫的特性,在分布式數(shù)據(jù)庫上仍能實現(xiàn)和保證,這使得以前的應用可方便地移植到新的平臺上,同時可以借助新的學習和統(tǒng)計算法,發(fā)掘更多的價值。
據(jù)IBM硬件系統(tǒng)部SCO服務器及OEM業(yè)務銷售總監(jiān)林燦輝介紹,在整個大數(shù)據(jù)的架構中,Hadoop超過了64%,Spark占12%,由此可見,Hadoop和Spark是未來整個大數(shù)據(jù)的發(fā)展潮流。而根據(jù)大數(shù)據(jù)架構中所碰到的問題的占比,系統(tǒng)數(shù)據(jù)讀寫的瓶頸和系統(tǒng)的分析效率各占21%。這就需要一個穩(wěn)健、敏捷的基礎架構來解決系統(tǒng)效率低下問題的關鍵。
IBM硬件系統(tǒng)部SCO服務器及OEM業(yè)務銷售總監(jiān)林燦輝
Spark作為一個通用的并行計算框架,已經成為繼Hadoop之后又一大熱門開源項目,逐漸獲得很多企業(yè)的支持。“Spark有三個主要的好處:一是讓大家能夠訪問所有數(shù)據(jù),包括關系庫、大型機中的數(shù)據(jù);二是提供一個基于內存的分析,有更好的性能;三是最重要的一點是統(tǒng)一的API,使得開發(fā)人員能夠端到端地做開發(fā)、數(shù)據(jù)處理。通過Spark技術中心,IBM加強Spark的核,并開源了SystemML機器學習庫,用于Spark。”IBM開源大數(shù)據(jù)分析系統(tǒng),產品總監(jiān)Steven Sit說道。
據(jù)介紹,IBM基于Spark和Hadoop構建了一個開放的分析平臺Comprehensive Analytic Platform,能夠充分使用客戶計算能力,進行數(shù)據(jù)集成、數(shù)據(jù)處理、數(shù)據(jù)分類、驗證和清理、時間分析等工作,支持Scale、Python。當然平臺不限于編程,同時也提供圖表工具用于分析,包括一些與客戶緊密相關的概率分析。
由Spark和Hadoop攜手將幫助企業(yè)充分利用開源的能力,挖掘業(yè)務交付價值,以及為企業(yè)提供企業(yè)級的能力和特性。那么洞察系統(tǒng)、記錄系統(tǒng)和交互系統(tǒng)之間有什么樣的關系?跟Hadoop、Spark和整體的分析有什么關系?
Steven Sit表示,Spark和Hadoop提供了這樣一些事件或者分析能力,幫助企業(yè)分析他們的記錄系統(tǒng),能夠找到實體DNA,這個實體可以是一個客戶,企業(yè)都非常想知道更多關于客戶的情況;也可以是物聯(lián)網,比如來自于汽車的傳感器信息等。通過一些事件了解更多實體的情況,且在洞察系統(tǒng)里的預測性分析,實現(xiàn)最佳效果。IBM稱其為“可以嵌入的洞察系統(tǒng)”,可以放在系統(tǒng)的交互前端,比如呼叫中心、POS系統(tǒng)、網站和移動應用等。這對于用戶來說是非常重要的,而客戶實現(xiàn)“以流程為中心”到“以洞察為中心”的轉變,需要構建在開源、開放的基礎上,特別是在Spark和Hadoop上。
例如,保險公司,他們的系統(tǒng)需要記錄大量的由遠程通信及信息處理技術應用產生的,與駕駛者相關的數(shù)據(jù),從而確定這個駕駛者的表現(xiàn)如何、開車是否總是加速或踩剎車,他偏向于白天或是晚上駕駛,是否會在高風險地區(qū)駕駛等問題,所有這些信息都能幫助企業(yè)了解駕駛者的駕駛危險程度,從而有針對性地對保單保費提供依據(jù),這是非常好的利用大數(shù)據(jù)分析的業(yè)務場景。
大約兩年前,當時Hadoop上未能實現(xiàn)的性能提升,現(xiàn)在在Spark上實現(xiàn)了。通過把Hadoop應用進行優(yōu)化并利用Spark,客戶的性能提升了40%以上,客戶使用的系統(tǒng)資源更少了,從而能減少20%以上的系統(tǒng)資源消費,這是令人興奮的一項工作。
Steven Sit補充道,“我們有一種叫Big Match的實踐分析產品組合,通過來自社交媒體的客戶信息,分析客戶個人的屬性變化,看他們是否有改變生活的事件,比如生孩子、買新車、搬家等。同時也會分析客戶的個人興趣、喜歡的餐廳等信息,這完全是基于Spark,能夠讓我們的計算速度更快、更加準確,為我們的客戶交付差不多270萬個潛在銷售機會,這對于信用卡的發(fā)卡行和金融服務都有很大好處。這幾個為數(shù)不多的案例證明了Hadoop和 Spark的領先性以及能夠給客戶所帶來的關鍵價值?!?/p>
那么,我們大多數(shù)的企業(yè)在Hadoop和Spark的采用情況如何?五年前,多數(shù)Hadoop項目剛開始的時候,都是假設這是可以降低成本的方案,通過存儲很多數(shù)據(jù),實現(xiàn)基本的能力提升,比如高峰時間業(yè)務量的分析等。
隨著時間的推移,從兩年前開始,一些新興模式開始出現(xiàn),在企業(yè)里充分地利用Hadoop,特別是圍繞“數(shù)據(jù)倉庫的現(xiàn)代化(Warehouse Modernization)”。針對企業(yè)的異構數(shù)據(jù)源,Hadoop提供了“數(shù)據(jù)湖”的環(huán)境,企業(yè)能夠攝取所有類型的數(shù)據(jù)。通過Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System),利用Hadoop的計算能力,做數(shù)據(jù)轉化或者緩存。
目前,在大數(shù)據(jù)解決方案里,人們希望通過Spark更好地實現(xiàn)風險或者保險領域的分析,由于Spark在數(shù)據(jù)分析方面的能力非常出色,Spark的特色在于它為大數(shù)據(jù)應用提供了一個統(tǒng)一的平臺。
從數(shù)據(jù)處理層面看,模型可以分為批處理、交互式、流處理等多種方式;而從大數(shù)據(jù)平臺而言,已有成熟的Hadoop、Cassandra、Mesos以及其他云的供應商。Spark整合了主要的數(shù)據(jù)處理模型,并能夠很好地與現(xiàn)在主流的大數(shù)據(jù)平臺集成。
因此,未來Hadoop攜手Spark將為企業(yè)洞察業(yè)務創(chuàng)新提供更多的可能。
責任編輯:郭嘉凱
guojk@softic.com.cn