李元亨 鄒學(xué)玉
摘要:新數(shù)據(jù)源的出現(xiàn),如非結(jié)構(gòu)化數(shù)據(jù),導(dǎo)致許多組織推論,單一的數(shù)據(jù)倉庫方案現(xiàn)在無法處理日益增長的分析工作量。如今的數(shù)據(jù)量在復(fù)雜性、多樣性、體積和速度上都在迅速增長。作為大型數(shù)據(jù)分析的平臺,Hadoop現(xiàn)在已經(jīng)成為數(shù)據(jù)倉庫環(huán)境的一個(gè)必要的條件,它在其中起到重要的作用。這樣,企業(yè)將能夠快速理解數(shù)據(jù)并探討數(shù)據(jù)的價(jià)值,讓分析師更快的詢問和解決他們的業(yè)務(wù)問題。為了允許面向批處理的分布式數(shù)據(jù)處理,Hadoop很容易融入同化過程。但是,它建立在基本原理上,嚴(yán)重限制了它作為分析數(shù)據(jù)庫的能力。
關(guān)鍵詞:非結(jié)構(gòu)化數(shù)據(jù);Hadoop;分布式
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)09-0008-02
1 引言
全球的每一個(gè)行業(yè)都必須面對同樣的挑戰(zhàn),即他們的數(shù)據(jù)增長速度比目前的數(shù)據(jù)倉庫要快得多,他們必須快速獲取并分析這些數(shù)據(jù)。意外的點(diǎn)擊流數(shù)據(jù)和事務(wù)量轉(zhuǎn)移到在線通道。他們驅(qū)動數(shù)據(jù)倉庫的成本、分析、處理和ELT(提取、轉(zhuǎn)換和加載)。
大多數(shù)的企業(yè)現(xiàn)在要分析像社交媒體數(shù)據(jù),多結(jié)構(gòu)化數(shù)據(jù)和非建模數(shù)據(jù)等這些非常復(fù)雜和高價(jià)值的數(shù)據(jù)類型以獲得的新的信息。但是主要的問題是這些數(shù)據(jù)類型并不適合于為數(shù)據(jù)倉庫的結(jié)構(gòu)化數(shù)據(jù)設(shè)計(jì)的現(xiàn)有并行處理模型[ 1 ]。擴(kuò)大傳統(tǒng)數(shù)據(jù)倉庫技術(shù)的價(jià)格是非常昂貴的,最終會變得不受歡迎。但是,如果成本比較合理,而性能就不得不適應(yīng)當(dāng)前的速度、數(shù)據(jù)的多樣性和增長量。目前需要兩種主要方式,即成本效益和可伸縮性。只有Hadoop滿足這兩個(gè)需求。
Hadoop是一個(gè)完整的開源生態(tài)系統(tǒng),用于處理不同的數(shù)據(jù)源,可視化、分析、共享、搜索、排序和組織[2]。這種架構(gòu)提供了幾乎無限的可伸縮性和可用性。 這種框架通常提供上千臺服務(wù)器,每個(gè)服務(wù)器都能夠進(jìn)行計(jì)算和本地存儲。Hadoop具有并行分析和存儲大數(shù)據(jù)集的能力。所有這一切都是在大量的計(jì)算機(jī)上進(jìn)行的,這些計(jì)算機(jī)產(chǎn)生了非凡的性能。同時(shí)使用商品硬件可以帶來顯著的低成本。Hadoop集群的價(jià)格往往每TB比數(shù)據(jù)倉庫系統(tǒng)低50到100倍。隨著Hadoop性能的提高和價(jià)格比率的降低,毫無疑問,Hadoop正在改變數(shù)據(jù)倉庫的形式。
1.1 Hadoop的背景
1)一個(gè)開源項(xiàng)目的課題Hadoop,來源于Dough Cutting在2006年將谷歌MapReduce編程框架應(yīng)用于分布式系統(tǒng)。它主要由兩個(gè)部分組成,第一是MapReduce(一種編程和作業(yè)管理框架)和Hadoop分布式文件系統(tǒng)(HDFS)。這一切都是因?yàn)镠adoop為分布式處理提供了一個(gè)可執(zhí)行的框架。許多開源項(xiàng)目正在迅速涌現(xiàn),它們正利用Hadoop來解決許多具體問題[ 3 ]。
2)Hadoop包括Zookeeper, Impala, Chukwa, Avro, Pig, Ambari, YARN, Cassandra, Mahout, Hbase, Hive ,MapReduce和Hadoop分布式文件系統(tǒng)(HDFS)。但需要注意的是,MapReduce可以不需要HDFS,可以運(yùn)行在關(guān)系型數(shù)據(jù)庫管理系統(tǒng)DBMS [ 4 ]。通用執(zhí)行引擎處理大量的手工代碼邏輯和包括分析在內(nèi)的許多其他應(yīng)用程序的并行編程的復(fù)雜性[5]。這個(gè)開源框架具有處理大量數(shù)據(jù)的能力,分別提供了計(jì)算能力和分布式存儲。Hadoop兩個(gè)最主要的兩個(gè)功能是:
3)分布式存儲:它有一個(gè)分布式文件系統(tǒng)HDFS提供存儲能力。
4)計(jì)算:使用了一個(gè)稱為MapReduce的重要框架。
分布式計(jì)算的幾個(gè)主要特性證明Hadoop是非常合理和獨(dú)特的:
1)可訪問性:Hadoop的工作是在云計(jì)算服務(wù)上完成的,因此可以在不同的節(jié)點(diǎn)上訪問數(shù)據(jù)。
2)健壯性:Hadoop的設(shè)計(jì)是在機(jī)器上運(yùn)行的,數(shù)據(jù)會在不同的機(jī)器上做備份,當(dāng)一臺機(jī)器發(fā)生故障時(shí),存有備份的機(jī)器會繼續(xù)工作[ 6 ]。
3)可伸縮性:通過向集群添加更多節(jié)點(diǎn),Hadoop對處理數(shù)據(jù)的線性度更高。
4)簡單:它允許用戶立即編寫有效的并行代。,Hadoop的簡單性和可訪問性運(yùn)行使運(yùn)行和重寫大規(guī)模的分布式程序變得可能。
1.2 新的數(shù)據(jù)倉庫形式中Hadoop的作用
1)數(shù)據(jù)分級:Hadoop在數(shù)據(jù)倉庫中的作用正在迅速增加。在加載數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù)和提取數(shù)據(jù)方面,Hadoop經(jīng)常被用來離線數(shù)據(jù)倉庫中的轉(zhuǎn)換和處理。而ELT必需要在數(shù)據(jù)倉庫中加載數(shù)據(jù)實(shí)現(xiàn)大規(guī)模和復(fù)雜的轉(zhuǎn)換,因此它可以代替ELT,即抽取、加載和轉(zhuǎn)換。而對于Hadoop,數(shù)據(jù)可以被提取并加載到Hadoop集群中,在該集群中可以輕松地實(shí)時(shí)轉(zhuǎn)換數(shù)據(jù),并將加載的結(jié)果放入數(shù)據(jù)倉庫中以供將來分析。在所有的精靈,英語教學(xué)過程是一個(gè)利用并行查詢處理位于數(shù)據(jù)倉庫平臺的方法。
2)數(shù)據(jù)歸檔:在“前端”,Hadoop可以發(fā)揮重要作用。它在執(zhí)行轉(zhuǎn)換處理過程中起著重要作用。在“后端”,它把數(shù)據(jù)從數(shù)據(jù)倉庫遷移到集群中。在兆字節(jié)的速率的虛擬擴(kuò)展的幫助下,它比傳統(tǒng)的數(shù)據(jù)倉庫快50倍。Hadoop還具有良好的數(shù)據(jù)歸檔功能,因?yàn)镠adoop可以對歸檔數(shù)據(jù)進(jìn)行分析。Hadoop對數(shù)據(jù)倉庫未來分析的特定結(jié)果集也是必需的[ 2 ]。一般來說,在歸檔數(shù)據(jù)時(shí),企業(yè)有三種選擇。一是留在關(guān)系數(shù)據(jù)庫中,二是把它移到磁帶上,或者被刪除。Hadoop的可擴(kuò)展性和低成本功能,使用戶可以在一個(gè)易于管理的在線環(huán)境中永久保存所有數(shù)據(jù)。
3)模式靈活性:對于穩(wěn)定的半結(jié)構(gòu)化數(shù)據(jù)(JSON和XML)和高度結(jié)構(gòu)化的數(shù)據(jù)(CRM和ERP),關(guān)系型數(shù)據(jù)庫管理系統(tǒng)DBMS可以良好的支持。而Hadoop可以輕松快速地?cái)z取任何類型的數(shù)據(jù)格式,包括無模式數(shù)據(jù)(圖像、視頻和音頻)和不斷變化的模式的數(shù)據(jù)(如在網(wǎng)站上的B/B和多變量測試)。
4)處理靈活性:Hadoop的NoSQL數(shù)據(jù)庫是使非傳統(tǒng)的數(shù)據(jù)類型的操作更自然的框架。它也可以支持處理有價(jià)值的程序用例,如差距識別和時(shí)間序列分析。Hadoop還支持許多編程語言,它比SQL具有更多的能力。隨著Hadoop的不斷發(fā)展,Hadoop也使“后期綁定”的部分不斷增加,除了將數(shù)據(jù)轉(zhuǎn)化為它所攝取的數(shù)據(jù)之外,也可以應(yīng)用于運(yùn)行時(shí)[ 4 ]。
2 Hadoop和RDBMS的區(qū)別
SQL(結(jié)構(gòu)化查詢語言)是針對結(jié)構(gòu)化數(shù)據(jù)的,但是大多數(shù)Hadoop的初始應(yīng)用程序是用來處理非結(jié)構(gòu)化數(shù)據(jù)的。Hadoop與SQL數(shù)據(jù)庫的詳細(xì)比較如下:
1)擴(kuò)展規(guī)模而不是非擴(kuò)展規(guī)模:組織關(guān)系數(shù)據(jù)庫的擴(kuò)展是昂貴的,因?yàn)闉榱司S護(hù)一個(gè)更大的數(shù)據(jù)庫,你需要更大的系統(tǒng)。Hadoop被認(rèn)為在一系列硬件上運(yùn)行的擴(kuò)展架構(gòu),添加更多資源意味著向集群中添加更多的機(jī)器。標(biāo)準(zhǔn)的情況是一個(gè)有十到幾百臺機(jī)器的集群。
2)鍵/值對數(shù)據(jù)庫設(shè)計(jì)而不是關(guān)系表:在RDBMS中,數(shù)據(jù)存儲在具有由模式定義的關(guān)系結(jié)構(gòu)的表中。Hadoop使用鍵/值對作為基本數(shù)據(jù)單元,它可以更適用于非結(jié)構(gòu)化數(shù)據(jù)類型。在Hadoop中,數(shù)據(jù)可以是任何形式的,但它最終轉(zhuǎn)換成(鍵/值)對使處理函數(shù)可以工作[ 6 ]。
3)函數(shù)式編程(MapReduce)代替聲明式查詢(SQL):SQL有查詢語句,而在MapReduce腳本和代碼下。MapReduce允許以更一般的方式處理數(shù)據(jù),而不是SQL查詢。例如,Hadoop可以從中構(gòu)建復(fù)雜的統(tǒng)計(jì)模型,數(shù)據(jù)或重新格式化的圖像數(shù)據(jù)。而SQL不能處理這樣的任務(wù)。
4)脫機(jī)批量處理而不是在線事務(wù):Hadoop是專為離線處理和分析大規(guī)模數(shù)據(jù)而設(shè)計(jì)的。它不執(zhí)行隨機(jī)讀取和寫入幾個(gè)記錄,這是聯(lián)機(jī)事務(wù)處理中的負(fù)載類型。Hadoop最好用作一次寫入,多次讀取數(shù)據(jù)存儲類型。這樣,它類似于SQL中的數(shù)據(jù)倉庫設(shè)計(jì)[ 7 ]。
3 Hadoop平臺的優(yōu)點(diǎn)和缺點(diǎn)
下面是Hadoop應(yīng)用比較普遍的領(lǐng)域列表:
1)Hadoop提供分布式存儲和計(jì)算功能[ 8 ]。
2)Hadoop是一個(gè)高度可擴(kuò)展的存儲平臺,它通過數(shù)百個(gè)并行運(yùn)行的服務(wù)器存儲和分配非常大的數(shù)據(jù)集。而(RDBMS)不具有擴(kuò)展能力處理大量數(shù)據(jù)[9]。
3)高性能計(jì)算(HPC)系統(tǒng)允許程序在大型計(jì)算機(jī)上運(yùn)行,但它們通常需要強(qiáng)大的編程配置,數(shù)據(jù)需要存儲在單獨(dú)的存儲區(qū)域網(wǎng)絡(luò)系統(tǒng)中。由于程序執(zhí)行對節(jié)點(diǎn)故障敏感性,對HPC集群上的調(diào)度程序需要仔細(xì)的管理,因此管理Hadoop集群要容易得多[ 10 ]。
4)HDFS采用大尺寸的處理單元,具有很強(qiáng)的擴(kuò)展性。它最適合處理大文件(字節(jié),字節(jié)…)。
5)可擴(kuò)展性和可用性是HDFS的重要特征,可以幫助實(shí)現(xiàn)數(shù)據(jù)復(fù)制和容錯系統(tǒng)。
6)HDFS可以復(fù)制指定的次數(shù)的文件(默認(rèn)是3個(gè)),它可以容忍硬件和軟件故障,并能自動恢復(fù)沒有節(jié)點(diǎn)的數(shù)據(jù)塊[ 11 ]。
7)Hadoop使用MapReduce,一個(gè)面向批處理的分布式計(jì)算框架,允許并行處理大數(shù)據(jù)。
8)在MapReduce中,開發(fā)人員只用專注于處理業(yè)務(wù)需求,而不用去考慮復(fù)雜的分布式系統(tǒng)。
9)為了更快地執(zhí)行作業(yè),MapReduce將作業(yè)分割為map和reduce任務(wù),并將它們調(diào)度到集群的從節(jié)點(diǎn)進(jìn)行遠(yuǎn)程執(zhí)行[ 7 ]。
以下是Hadoop框架中常見的缺點(diǎn):
1)Hadoop使用HDFS和MapReduce,雖然服務(wù)器模型具有高可用性,但這些主節(jié)點(diǎn)有單點(diǎn)故障[ 12 ]。
2)安全性也是主要關(guān)注的問題之一,因?yàn)镠adoop確實(shí)提供了一個(gè)安全模型,但默認(rèn)情況下,由于其高度復(fù)雜性而被禁用。一旦對Hadoop集群進(jìn)行驗(yàn)證,用戶就擁有該集群中的所有數(shù)據(jù)[ 13 ]。
3)Hadoop不提供存儲加密和網(wǎng)絡(luò)級加密,政府部門對這方面很是關(guān)注[ 14 ]。
4)HDFS是無效的處理小文件。它缺乏作為HDFS的透明壓縮不計(jì)劃與隨機(jī)讀取小文件的工作由于其長期的吞吐量優(yōu)化。
5)MapReduce是一種無共享的體系結(jié)構(gòu),因此需要全局同步或共享可變數(shù)據(jù)的任務(wù)不適合這種結(jié)構(gòu),對一些算法也具有一些挑戰(zhàn)[ 7 ]。
6)備份也是困難的。Hadoop是容錯的,但是企業(yè)仍然需要一個(gè)恢復(fù)方案,或者回到某個(gè)時(shí)間點(diǎn)上來備份一些人為錯誤會導(dǎo)致的損壞的數(shù)據(jù)。
7)Hadoop不支持實(shí)時(shí)查詢。雖然它已經(jīng)創(chuàng)建了一套新的基于SQL的語言和緩存層,但Hadoop仍然不適合實(shí)時(shí)計(jì)算[ 8 ]。
這些問題都沒有影響Hadoop,但不承認(rèn)這些限制可能會導(dǎo)致一些Hadoop可能不能完成一些事情。
4 結(jié)論
大數(shù)據(jù)種類多、數(shù)量大且更新速度快,單一的平臺很難滿足企業(yè)對大數(shù)據(jù)的要求。Hadoop并沒有取代關(guān)系數(shù)據(jù)庫,但它具有更好的價(jià)格/性能比將使企業(yè)降低成本,同時(shí)維護(hù)其現(xiàn)有的應(yīng)用程序和基礎(chǔ)設(shè)施?;蛘咄ㄟ^將現(xiàn)有技術(shù)與Hadoop的并行處理能力結(jié)合起來,用于結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),具體取決于用戶的需求。 那些目前仍不愿意投資的人,可以考慮云的形式,Hadoop現(xiàn)在可以作為“按需”服務(wù)。因此,如果想成立一個(gè)企業(yè),就準(zhǔn)備成為新的多平臺數(shù)據(jù)倉庫范型的支持者,并將Hadoop作為一個(gè)潛在的強(qiáng)大的企業(yè)數(shù)據(jù)管理中心。
參考文獻(xiàn):
[1] Rizzi S, Trujillo J. Research in data warehouse modeling and design:dead or alive[C],DBLP, 2006:3-10.
[2] 陳吉榮,樂嘉錦.基于Hadoop生態(tài)系統(tǒng)的大數(shù)據(jù)解決方案綜述[J].計(jì)算機(jī)工程與科學(xué),2013,35(10):25-35.
[3] ParAccel.Hadoop's Limitation for Big Data Analytics [J].2012.
[4] P. Russom.Where Hadoop Fits in Your Data Warehouse Architecture, TDWI, 2013.
[5] P. Russom, Integrating Hadoop into Business Intelligence and Data Warehousing [J].2013.
[6] C. Lam, Hadoop in Action, Manning, 2010: 7-8.
[7] Hadoop Introduction, Guruzon, 2014. [Online]. Available:http://guruzon.com/6/introduction/hadoop/what-is-hadoop-apache-cluster-bigdata-use-limitation. [Accessed February 2014]
[8] 許丞,劉洪,譚良.Hadoop云平臺的一種新的任務(wù)調(diào)度和監(jiān)控機(jī)制[J].計(jì)算機(jī)科學(xué),2013,40(01):112-117.
[9] 崔杰,李陶深,蘭紅星.基于Hadoop的海量數(shù)據(jù)存儲平臺設(shè)計(jì)與開發(fā)[J].計(jì)算機(jī)研究與發(fā)展,2012,49(S1):12-18
[10] Apache Hadoop. http://apache.Hadoop.org.
[11] Hadoop advantanges and disadvantages, java J2EE Tutorials, [Online]. Available: http://www.j2eebrain.com/java-J2ee-hadoop-advantages-and-disadvantages.html.Accessed February 2014.
[12] 周丹.基于paxos算法的Hadoop分布式文件系統(tǒng)高可用性探究[J].電子測試,2014(S1):24-26.
[13] Jason C. Cohen,Dr. Subrata Acharya, Incorporating Hardware Trust Mechanism in Apache Hadoop C].IEEE , 2012:12.
[14] Lin H Y, Shen S T, Tzeng W G, et al. Toward Data Confidentiality via Integrating Hybrid Encryption Schemes and Hadoop Distributed File System[C].IEEE, International Conference on Advanced Information NETWORKING and Applications. IEEE, 2012:740-747.