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