Hadoop作為大數(shù)據(jù)常用的架構(gòu),其發(fā)展目前可以說(shuō)方興未艾。其很多價(jià)值有待人們進(jìn)一步挖掘,甚至很多人在認(rèn)識(shí)Hadoop的過(guò)程中對(duì)其產(chǎn)生了誤解。中培偉業(yè)《大數(shù)據(jù)平臺(tái)搭建與高性能計(jì)算最佳實(shí)踐》培訓(xùn)專家蔣老師在這里就10大最常見(jiàn)的Hadoop應(yīng)用誤解進(jìn)行了介紹,并做出了更正解釋,希望能對(duì)廣大大數(shù)據(jù)應(yīng)用者正確認(rèn)識(shí)Hadoop帶來(lái)幫助。
1.誤解) Hadoop什么都可以做
正解) 當(dāng)一個(gè)新技術(shù)出來(lái)時(shí),我們都會(huì)去思考它在各個(gè)不同產(chǎn)業(yè)的應(yīng)用,而對(duì)于平臺(tái)的新技術(shù)來(lái)說(shuō),我們思考之后常會(huì)出現(xiàn)這樣的結(jié)論 “這個(gè)好像什么都能做”, 然而,更深入的去想,你就會(huì)發(fā)現(xiàn)“好像什么都需要重頭做”。
2.誤解) Hadoop無(wú)法扮演HPC (High Performance Computing) or Grid Computing的角色
(正解) 由于Hadoop本身是由并行運(yùn)算架構(gòu)(MapReduce)與分布式文件系統(tǒng)(HDFS)所組成,所以我們也看到很多研究機(jī)構(gòu)或教育單位,開(kāi)始嘗試把部分原本執(zhí)行在HPC 或Grid上面的任務(wù),部分移植到Hadoop集群上面,利用Hadoop兼顧高速運(yùn)算與海量?jī)?chǔ)存的特性,更簡(jiǎn)易且更有效率地來(lái)執(zhí)行工作。目前國(guó)外高能物理、生命科學(xué)、醫(yī)學(xué)等領(lǐng)域,都已經(jīng)有這樣的應(yīng)用案例,利用Hadoop集群與現(xiàn)有的HPC/Grid 搭配、協(xié)同運(yùn)作,來(lái)滿足不同特性的運(yùn)算任務(wù)。
3.誤解) Hadoop只能做資料分析挖掘(Data Mining/Analyst)
正解) Hadoop特別適合來(lái)數(shù)據(jù)分析與挖掘的應(yīng)用是毫無(wú)疑問(wèn)的,但數(shù)據(jù)分析與挖掘是難度與深度都較高的一個(gè)應(yīng)用,所需要的時(shí)間的積累也比較長(zhǎng),也因此讓一般企業(yè)對(duì)于導(dǎo)入Hadoop視為畏途,甚至心懷恐懼。
4.誤解) Hadoop就是BI (Business Intelligence)商業(yè)智能
正解) 跟前面一樣,這也是大多數(shù)人最容易誤解的地方,因?yàn)镠adoop特別適合來(lái)做數(shù)據(jù)分析,所以就很直覺(jué)地把它想成 “那就是BI嘛”。 會(huì)有這種誤解,主要來(lái)自于對(duì)數(shù)據(jù)運(yùn)用的整體架構(gòu)的不清楚。傳統(tǒng)BI是屬于數(shù)據(jù)展現(xiàn)層(Data Presentation),其數(shù)據(jù)的載體(Data Store)是數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)。對(duì)比來(lái)看,Hadoop就是專注在半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)載體,跟BI是不同層次的概念。
5. 誤解) Hadoop就是ETL (Extract, Transform & Load)
(正解) ETL其實(shí)有兩種意涵,它本身是一個(gè)概念,也同時(shí)是一個(gè)產(chǎn)品類別(Product Category)的總稱。所以當(dāng)我們聽(tīng)到“某某公司是做ETL產(chǎn)品的”的這種對(duì)話時(shí),其中的 ETL,與DB、Application Server等名詞是相同的,都是指向某種類別的IT產(chǎn)品。然而,如果就概念性上來(lái)看,ETL指的其實(shí)是數(shù)據(jù)運(yùn)用的生命周期中的其中一個(gè)過(guò)程, 跟我前面提到的數(shù)據(jù)預(yù)處理(Data pre-Processing)是同樣一個(gè)概念,舉凡數(shù)據(jù)清洗(Data Cleansing)、數(shù)據(jù)關(guān)聯(lián)、數(shù)據(jù)匯總等,都包含在這個(gè)范疇內(nèi)。
6.誤解) Hadoop跟傳統(tǒng)storage沒(méi)什么差別, 都特別適合來(lái)做資料的備份(Data Archive)
(正解) 熟悉storage的人,第一次看到Hadoop時(shí),往往只會(huì)注意到它的分布式文件系統(tǒng)HDFS,然后開(kāi)始拿它來(lái)與現(xiàn)有的storage的功能特性做比較,而忽略掉Hadoop本身并行運(yùn)算的那一塊。這很合理,畢竟MapReduce的概念,在應(yīng)用上是比較抽象且難以捉摸的,相反的,HDFS就是一個(gè)很清楚且具象的概念。
7. 誤解) Hadoop是一個(gè)搜索引擎(Search Engine)
(正解) Search 的確是Hadoop的一個(gè)重要的應(yīng)用,但Hadoop本身并沒(méi)有內(nèi)含search engine。實(shí)務(wù)上,我們常會(huì)把HBase 的index設(shè)計(jì)運(yùn)用到極致,來(lái)滿足一些特定search 或query的應(yīng)用,但如果要滿足全文檢索 (full-text search)的需求的話,你就必須在Hadoop上建構(gòu)一個(gè)基于Hadoop的搜索引擎。Lucene / Katta 及其他的open source都有相對(duì)應(yīng)的計(jì)劃,如何借助Hadoop的特性,來(lái)實(shí)現(xiàn)一個(gè)強(qiáng)大的分布式搜索引擎,這也是我們一直密切注意、且已放進(jìn)未來(lái)產(chǎn)品的藍(lán)圖之中的重要話題。
8. 誤解) 基于Hadoop的推薦系統(tǒng)與傳統(tǒng)的推薦系統(tǒng)并無(wú)不同
正解) 傳統(tǒng)的推薦系統(tǒng)只處理客戶的事務(wù)數(shù)據(jù)(transaction data),大多用的是數(shù)據(jù)倉(cāng)庫(kù)或商業(yè)智能等解決方案,然而,除了客戶的事務(wù)數(shù)據(jù)之外,是否也有可能針對(duì)客戶交易前的行為進(jìn)行分析、進(jìn)而產(chǎn)生推薦? 特別是對(duì)電子商務(wù)網(wǎng)站來(lái)說(shuō),客戶在完成購(gòu)買(mǎi)前的點(diǎn)擊瀏覽、搜尋、及放進(jìn)購(gòu)物車(chē)等行為,都包含了豐富的訊息,可以藉此很容易去導(dǎo)引出客戶想要尋找什么樣的商品,所以,如果在產(chǎn)生推薦過(guò)程中可以把這些訊息都納進(jìn)來(lái),則所產(chǎn)生推薦的精準(zhǔn)度與豐富度必然可以大為提高。
這正是新一代的推薦系統(tǒng)會(huì)面臨到的挑戰(zhàn) : 如何在事務(wù)數(shù)據(jù) (Transaction Data) 之外,同時(shí)也可以把客戶的互動(dòng)數(shù)據(jù) (Interaction Data) 含括進(jìn)來(lái)? 由于客戶互動(dòng)數(shù)據(jù)的型態(tài)與事務(wù)數(shù)據(jù)間有極大的差異,其數(shù)量級(jí)更是遠(yuǎn)遠(yuǎn)大于事務(wù)數(shù)據(jù)量,運(yùn)算頻率更是有極高的要求,也因此都遠(yuǎn)超過(guò)現(xiàn)有數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)儲(chǔ)的能力,而這正是Hadoop所擅長(zhǎng),可以輕易拓展傳統(tǒng)機(jī)器學(xué)習(xí) (Machine Learning) 算法分析大量數(shù)據(jù)集 (Large Datasets) 的能力,并同時(shí)具備橫向擴(kuò)充 (Scale-out) 的能力,可隨著數(shù)據(jù)集的成長(zhǎng)輕易擴(kuò)充,無(wú)論多大的數(shù)據(jù)都可輕易勝任。
9. 誤解) Hadoop不適合用來(lái)處理小檔案的應(yīng)用
(正解) 對(duì)Hadoop稍微有點(diǎn)了解的人,都會(huì)知道HDFS的block size的default 值為64MB,且不建議往下調(diào),因?yàn)镠DFS當(dāng)初在設(shè)計(jì)時(shí),并不是針對(duì)碎片般的小檔案的處理而來(lái)的。所以當(dāng)我們說(shuō)Hadoop不適合用來(lái)處理小檔案的應(yīng)用時(shí),就技術(shù)上來(lái)說(shuō)是對(duì)的,但在實(shí)際運(yùn)用上,卻可以有不同的做法來(lái)滿足海量小檔案管理的需求。
10. 誤解) Hadoop不適合用來(lái)做日志管理(Log Management)的應(yīng)用
正解) 當(dāng)每天的日志量成長(zhǎng)到一定的程度,現(xiàn)有的日志管理工具都會(huì)遇到瓶頸,所以一些國(guó)外的日志管理工具如Splunk、ArcSight)都已經(jīng)發(fā)布了其Hadoop Connector,強(qiáng)調(diào)其與Hadoop的聯(lián)系性與兼容性。所以,如果客戶對(duì)日志管理的需求只是保存日志、并可以隨時(shí)對(duì)日志搜索的話,那Hadoop本身即可以滿足這樣的應(yīng)用,而對(duì)于比較復(fù)雜的日志管理且日志量非常大的需求,客戶也可以從現(xiàn)有的日志管理工具中來(lái)挑選,并與Hadoop來(lái)搭配協(xié)同運(yùn)作。