訪談韓冀中:淺談Hadoop實(shí)戰(zhàn)
本文關(guān)鍵詞:Hadoop實(shí)戰(zhàn),由筆耕文化傳播整理發(fā)布。
人物簡(jiǎn)介:韓冀中
博士,中國(guó)科學(xué)院計(jì)算技術(shù)研究所副研究員,研究生導(dǎo)師,長(zhǎng)期從事并行分布式計(jì)算領(lǐng)域的科研工作。國(guó)內(nèi)早期的Hadoop使用者之一,有豐富的相關(guān)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。
研究方向: 大規(guī)模數(shù)據(jù)處理、并行程序調(diào)試、計(jì)算系統(tǒng)虛擬化。
能不能先介紹一下您目前的工作,和您接觸Hadoop的經(jīng)歷。
韓冀中:我現(xiàn)在是中科院計(jì)算所的一名科研人員,有一個(gè)十幾個(gè)人的團(tuán)隊(duì),主要研究大數(shù)據(jù)的處理。我是在2008年 接觸Hadoop平臺(tái)的。當(dāng)時(shí)因?yàn)轫?xiàng)目需要,希望能夠在分布式系統(tǒng)上搭建地理信息系統(tǒng)。我們就嘗試了在Hadoop平臺(tái)上做空間算子的并行計(jì)算,并用 HBase來(lái)支持Web地圖瀏覽,后來(lái)也使用HBase來(lái)管理GPS這樣的空間時(shí)序數(shù)據(jù)。在這個(gè)過(guò)程中,逐漸熟悉了Hadoop。這兩年,我和實(shí)驗(yàn)室的王 偉平、涂碧波老師的團(tuán)隊(duì)一起,與騰訊、國(guó)家電網(wǎng)等企業(yè)進(jìn)行合作,開(kāi)展了許多大數(shù)據(jù)平臺(tái)的工作,或多或少都使用了Hadoop。
請(qǐng)問(wèn)目前云計(jì)算、數(shù)據(jù)挖掘等等技術(shù)發(fā)展到了什么程度? Hadoop在其中又扮演怎樣的角色?
韓冀中:要講云計(jì)算、大數(shù)據(jù)和Hadoop,都很難不說(shuō)Google,Google把數(shù)據(jù)當(dāng)成是一種可以賺錢(qián)的 資源,它建了許多數(shù)據(jù)中心來(lái)運(yùn)維基于數(shù)據(jù)的服務(wù),采用了許多有革命性的技術(shù)。實(shí)際上,對(duì)于任何公司和企業(yè),數(shù)據(jù)都是非常重要的資源,F(xiàn)在,Google、 微軟、Amazon都有大數(shù)據(jù)平臺(tái),但是并不是所有的企業(yè)和公司都有能力來(lái)構(gòu)建這樣的系統(tǒng)。這就是為什么Hadoop會(huì)出現(xiàn)并迅猛發(fā)展的原因了。
Hadoop參照了Google的設(shè)計(jì),但還是有許多不同之處。作為一個(gè)開(kāi)源平臺(tái),而不是面向某個(gè)公司的業(yè)務(wù)來(lái)定制,Hadoop是非常成功的一個(gè) 系統(tǒng)。但是,相對(duì)于Google等公司的平臺(tái),Hadoop在具體設(shè)計(jì)和實(shí)現(xiàn)上并不是最優(yōu)的。但它擁有一個(gè)強(qiáng)大的開(kāi)源社區(qū),為大家提供了了一個(gè)穩(wěn)定可靠的 系統(tǒng),還有許多成功的應(yīng)用案例,這就使得它幾乎是開(kāi)源云計(jì)算平臺(tái)的唯一選擇。有些人可能沒(méi)聽(tīng)說(shuō)過(guò)Google的Pregel、Bigtable或者微軟的 DryadLINQ,但大多知道Hadoop、HBase和Hive。
分布式系統(tǒng)的歷史其實(shí)很長(zhǎng),Hadoop是第一個(gè)能讓普通大眾完全掌握分布式系統(tǒng)的技術(shù),它降低了分布式系統(tǒng)的門(mén)檻。過(guò)去,如果企業(yè)有處理大量數(shù)據(jù) 處理的需求,要選擇搭建分布式環(huán)境,就必須投入很高的成本,買(mǎi)昂貴的機(jī)器,還要求這方面的專(zhuān)業(yè)人才。而現(xiàn)在買(mǎi)差不多的機(jī)器,搭建一個(gè)Hadoop集群就可 以了。當(dāng)然不是說(shuō)Hadoop對(duì)硬件的要求就非常低,而是因?yàn)楝F(xiàn)在一臺(tái)簡(jiǎn)單的刀片能力也很強(qiáng)了。現(xiàn)在用一個(gè)幾十萬(wàn)的平臺(tái),就可以做很多的事 情,Hadoop把運(yùn)維分布式系統(tǒng)的門(mén)檻降低了。就像Unix和Linux的關(guān)系,Unix并不大眾化,而Linux則是一個(gè)大眾化的東西,大家都可以去 修改它,應(yīng)用也非常廣泛,從這一點(diǎn)上看,Hadoop是一個(gè)非常了不起的系統(tǒng)。
Hadoop在近些年經(jīng)歷了哪些變化呢?未來(lái)又會(huì)有哪些規(guī)劃?
韓冀中:就像《Hadoop實(shí)戰(zhàn)》這本書(shū)里提到的,Hadoop在0.20版本中引入了一個(gè)新的 MapReduce API,作者預(yù)計(jì)在0.21中舊的API會(huì)被廢棄。但實(shí)際上因?yàn)樾翧PI還有許多不完善的地方,所以我們現(xiàn)在看到0.21中依然保留了舊的API。按計(jì)劃 0.23版本會(huì)出現(xiàn)MapReduce 2.0,要說(shuō)清楚這個(gè),需要先說(shuō)說(shuō)MapReduce的含義。
Hadoop中的MapReduce其實(shí)包含了兩個(gè)含義,一個(gè)是就是剛才講的——給用戶(hù)的編程模型API,另一個(gè)是指內(nèi)部MapReduce的運(yùn)行 框架,負(fù)責(zé)資源調(diào)度和數(shù)據(jù)通信管理。現(xiàn)有的Hadoop中,MapReduce的編程模型和運(yùn)行框架是綁定死的,而在MapReduce 2.0中,會(huì)把JobTracker分為ResourceManager和ApplicationMaster,分離編程模型與運(yùn)行框架。這相當(dāng)于把應(yīng)用 和資源分別管理,讓系統(tǒng)架構(gòu)更為靈活高效,就可以在一個(gè)平臺(tái)上支持多個(gè)編程模型,適應(yīng)更多的應(yīng)用。對(duì)于Hadoop而言,這是的一個(gè)非常大的修改。
除了MapReduce外,未來(lái)的Hadoop版本還會(huì)在HDFS、HBase、Hive等方面做出許多改進(jìn),在Hadoop官方網(wǎng)站上可以了解到很多相關(guān)的信息。
對(duì)于Hadoop是NoSQL應(yīng)用程序框架這一概念,能否談?wù)勀睦斫猓?/strong>
**韓冀中:**Hadoop是一個(gè)復(fù)雜的系統(tǒng)。Hadoop中的HBase是一種NoSQL系統(tǒng),而Hive又是一種支持SQL查詢(xún)的工具。前者 是基于列存儲(chǔ)技術(shù)、面向小數(shù)據(jù)塊隨機(jī)訪問(wèn)的。后者是在架構(gòu)在MapReduce之上、對(duì)數(shù)據(jù)進(jìn)行批量處理的技術(shù)。如果訪問(wèn)Hadoop的主頁(yè),你會(huì)發(fā)現(xiàn) Hadoop的主項(xiàng)目中是沒(méi)有HBase的。因?yàn)镠adoop的主體是MapReduce和HDFS,而Hbase、Hive、Pig等都是在外圍相關(guān)子 項(xiàng)目中的,它們共同構(gòu)成了Hadoop的生態(tài)環(huán)境。再額外說(shuō)一點(diǎn),為什么說(shuō)Hadoop社區(qū)做得好呢?就是因?yàn)檫@些新開(kāi)發(fā)的系統(tǒng)會(huì)先放在孵化器里面,經(jīng)過(guò) 一定階段,當(dāng)它能夠跟Hadoop的生態(tài)環(huán)境完美結(jié)合的時(shí)候,才會(huì)遷移進(jìn)這個(gè)生態(tài)環(huán)境里,成為Hadoop的子項(xiàng)目。
HBase是一種發(fā)展得比較早的NoSQL系統(tǒng),最早源于Google的BigTable架構(gòu),它的擴(kuò)展性非常好。而且HBase可以和Hadoop進(jìn)行緊密的融合,在運(yùn)行MapReduce程序的時(shí)候,它能夠保證良好的數(shù)據(jù)局部性。在這方面,它的優(yōu)勢(shì)很明顯。
Hadoop有競(jìng)爭(zhēng)對(duì)手嗎?
韓冀中:我認(rèn)為在大數(shù)據(jù)的批量處理方面,Hadoop在開(kāi)源社區(qū)中沒(méi)有敵手。這并非因?yàn)镠adoop足夠完善,而是因?yàn)樗幸粋(gè)足夠好的社區(qū)支持。
您近年來(lái)一直在研究基于key/value與MapReduce的存儲(chǔ)計(jì)算框架,也是國(guó)內(nèi)最早使用Hadoop的人之一,能否結(jié)合您的經(jīng)歷,談?wù)凥adoop實(shí)際應(yīng)用的情況?
韓冀中:我用Hadoop經(jīng)過(guò)了大概三個(gè)階段:第一個(gè)階段,寫(xiě)MapReduce程序來(lái)解決應(yīng)用問(wèn)題,包括并行 計(jì)算、數(shù)據(jù)存儲(chǔ)和動(dòng)態(tài)擴(kuò)展等。第二個(gè)階段,是跟企業(yè)結(jié)合,做一些跟Hadoop不一樣的東西。現(xiàn)在是第三個(gè)階段,根據(jù)用戶(hù)需求,把Hadoop作為一個(gè)組 件來(lái)使用,這種情況下會(huì)與其他系統(tǒng)進(jìn)行整合。
現(xiàn)在,這個(gè)平臺(tái)最大的優(yōu)勢(shì)是能夠處理大量無(wú)結(jié)構(gòu)、半結(jié)構(gòu)化的數(shù)據(jù),而互聯(lián)網(wǎng)企業(yè)的很多數(shù)據(jù)是這種類(lèi)型的,他們的使用也能夠證明這個(gè)平臺(tái)的價(jià)值。如果 在互聯(lián)網(wǎng)以外的領(lǐng)域,Hadoop的性能不見(jiàn)得就比數(shù)據(jù)庫(kù)平臺(tái)好,衡量它的性能還是跟應(yīng)用有關(guān)系。對(duì)于Hadoop的評(píng)價(jià),真正更有發(fā)言權(quán)的是那些互聯(lián)網(wǎng) 公司,他們每天都在運(yùn)行這些系統(tǒng),對(duì)運(yùn)維的感受更直接。
我們后來(lái)使用Hadoop不是在互聯(lián)網(wǎng)領(lǐng)域,而是在其他一些領(lǐng)域,比如電網(wǎng),他們的需求跟互聯(lián)網(wǎng)公司的需求是不一樣的。跟這些公司的業(yè)務(wù)需求結(jié)合的 時(shí)候,涉及的就不只是Hadoop這一個(gè)平臺(tái),同時(shí)要考慮怎么跟其他平臺(tái)結(jié)合。我們經(jīng)歷過(guò)這種情況:企業(yè)過(guò)去是用數(shù)據(jù)庫(kù)的,現(xiàn)在想遷移到這個(gè)平臺(tái),那么首 先要解決的是基于SQL應(yīng)用的切換。Hadoop本身有Hive這個(gè)工具,可以用來(lái)進(jìn)行無(wú)縫切換,不過(guò)這樣做以后,可能會(huì)發(fā)現(xiàn)性能上有些令人失望。
其實(shí)大家一直在討論Hadoop跟數(shù)據(jù)庫(kù)比較,哪個(gè)更好一些。實(shí)際上SQL數(shù)據(jù)庫(kù)目前已有的產(chǎn)品,性能是非常好的。根據(jù)我們的實(shí)驗(yàn)測(cè)試,在單點(diǎn)性能 上,Hadoop可能是比數(shù)據(jù)庫(kù)要差的。Hadoop更多靠規(guī)模來(lái)取勝。很多人說(shuō)Hadoop比數(shù)據(jù)庫(kù)性能好多少,有可能是因?yàn)閿?shù)據(jù)庫(kù)沒(méi)有調(diào)好。數(shù)據(jù)庫(kù)用 得好的,提供的性能也是能支持系統(tǒng)開(kāi)發(fā)的,關(guān)鍵看應(yīng)用需求。目前在真正的企業(yè)環(huán)境中,不會(huì)只用Hadoop,還會(huì)保留數(shù)據(jù)庫(kù)。我認(rèn)為這兩者不是誰(shuí)取代誰(shuí)的 關(guān)系,Hadoop并不會(huì)一統(tǒng)天下。
您了解國(guó)內(nèi)開(kāi)源愛(ài)好者對(duì)Hadoop社區(qū)的貢獻(xiàn)嗎?
韓冀中:具體不太了解,總體上看,國(guó)內(nèi)的人目前還比較少。但我認(rèn)識(shí)計(jì)算所查禮老師的團(tuán)隊(duì)的何永強(qiáng),就是一個(gè)Hadoop Committer。
開(kāi)源社區(qū)其實(shí)有賴(lài)于穩(wěn)定的團(tuán)體來(lái)運(yùn)作,才能把它做好,并保證系統(tǒng)的穩(wěn)定。Hadoop這樣的離線系統(tǒng)對(duì)性能的要求不是最高的,更注重穩(wěn)定性。 Hadoop目前有Yahoo、Facebook、Cloudera等公司的參與,這種大公司采用它來(lái)管理集群,本身就具有很大的說(shuō)服力。
《Hadoop實(shí)戰(zhàn)》一書(shū)最后案例分析中有中國(guó)移動(dòng)的案例,其實(shí)外文書(shū)使用中國(guó)案例的并不多見(jiàn),您怎么看待這一情況?
韓冀中:《Hadoop實(shí)戰(zhàn)》最后的幾個(gè)案例是這本書(shū)很有特色的地方。的確,國(guó)外的書(shū)對(duì)中國(guó)的案例確實(shí)引用很 少,這也從側(cè)面說(shuō)明這幾年Hadoop在國(guó)內(nèi)的發(fā)展很快。目前云計(jì)算應(yīng)用的研究異常火熱,一定會(huì)影響國(guó)內(nèi)的大型企業(yè)和機(jī)構(gòu)。Hadoop的核心技術(shù)是參照 了Google這個(gè)互聯(lián)網(wǎng)公司,所以目前比較成功的Hadoop應(yīng)用主要是在互聯(lián)網(wǎng)領(lǐng)域。而其它行業(yè)使用Hadoop,還需要與自身業(yè)務(wù)特征相結(jié)合,因此 在應(yīng)用的過(guò)程中還需要付出很大的努力。這也是我們目前和電網(wǎng)等企業(yè)合作的主要工作目標(biāo)。
對(duì)于Hadoop的學(xué)習(xí)者,您有哪些建議呢?《Hadoop實(shí)戰(zhàn)》這本書(shū)有什么樣的特點(diǎn)呢?
韓冀中:Hadoop是個(gè)生態(tài)系統(tǒng),不同學(xué)習(xí)者會(huì)對(duì)這個(gè)系統(tǒng)有不同的應(yīng)用需求。我自己是從編程開(kāi)始逐漸了解Hadoop的,我覺(jué)得這是一種可行也比 較快的進(jìn)階方法?赡艽蠖鄶(shù)人都是通過(guò)看官方文檔或參考書(shū),然后結(jié)合自己的工作熟悉Hadoop的。目前希望了解和使用Hadoop的人來(lái)自各個(gè)行業(yè),甚 至不同專(zhuān)業(yè)。相對(duì)于這個(gè)龐大的用戶(hù)群而言,Hadoop的教材顯得太少了。Hadoop的官方文檔的確是非常全面的,對(duì)于高階用戶(hù)而言,應(yīng)該經(jīng)常查看,了 解最新的更新。但對(duì)于剛剛了解Hadoop的讀者,通過(guò)一本系統(tǒng)的書(shū)籍來(lái)學(xué)習(xí)是更好的,而且會(huì)大大縮短學(xué)習(xí)的時(shí)間。
《Hadoop實(shí)戰(zhàn)》這本書(shū)除了講解使用Hadoop所需的基礎(chǔ)知識(shí),還給出了編寫(xiě)和運(yùn)行Hadoop數(shù)據(jù)處理程序所需的實(shí)踐技能,最后還探討了 Hadoop之外更大的生態(tài)環(huán)境(Hive、Pig、HBase等)。我很欣賞作者的這個(gè)結(jié)構(gòu),我想這也是讀者非常容易理解的一種結(jié)構(gòu)。如果把這本書(shū)當(dāng)成 一部小說(shuō)來(lái)看的話,MapReduce就是貫穿本書(shū)的主線。它并不是一本包羅萬(wàn)象的系統(tǒng)工具書(shū),更像是一本簡(jiǎn)明的編程語(yǔ)言手冊(cè),有一點(diǎn)How To的意思。它在MapReduce編程方面也講得比較深入透徹,有些內(nèi)容來(lái)自于作者的寶貴的實(shí)踐經(jīng)驗(yàn),是非常值得一讀的。
那些希望實(shí)際使用MapReduce編程的讀者,一定會(huì)很非常喜歡這本書(shū)。這本書(shū)給了許多數(shù)據(jù)的下載鏈接和一些實(shí)戰(zhàn)練習(xí),建議大家有時(shí)間做一做,會(huì) 對(duì)MapReduce這個(gè)語(yǔ)言有更多的體會(huì)。學(xué)計(jì)算機(jī)不是一門(mén)科學(xué),更像是一門(mén)藝術(shù),真正有效的學(xué)習(xí)還是要從動(dòng)手寫(xiě)代碼開(kāi)始。
如果想了解更多資訊和應(yīng)用經(jīng)驗(yàn),大家可以關(guān)注一些會(huì)議,比如國(guó)外的Hadoop World,國(guó)內(nèi)的Hadoop in China等等,每年都有一些很好的技術(shù)講座,往年的也大多可以在一些視頻網(wǎng)站上找到。
今年的Hadoop中國(guó)2011云計(jì)算大會(huì)就要召開(kāi)了,主題是“海量數(shù)據(jù)掘?qū)殹保芊裉崆敖o我們透露些大會(huì)的看點(diǎn)?
韓冀中:這個(gè)會(huì)議是計(jì)算所查禮老師組織的,具體我不太清楚。不過(guò)據(jù)說(shuō)今年請(qǐng)了Doug Cutting,重量級(jí)人物,非常值得期待。
據(jù)悉斯坦福和卡內(nèi)基•梅隆等一流大學(xué)已經(jīng)開(kāi)始將Hadoop引入他們的計(jì)算機(jī)科學(xué)課程,國(guó)內(nèi)院校的情況如何?
韓冀中:近幾年我們?cè)谡猩,還沒(méi)有看到本科生有開(kāi)設(shè)過(guò)這方面課程的。計(jì)算所的詹劍鋒老師在中科院研究生院開(kāi)設(shè)了一個(gè)相關(guān)課程,其他院校不太了解。
《Hadoop實(shí)戰(zhàn)》一書(shū)在尋找譯者的過(guò)程中,王斌老師力薦我們請(qǐng)您翻譯。這是您第一次獨(dú)立完成一本書(shū)的翻譯工作,能夠談?wù)勥@方面的感受?
韓冀中:非常謝謝王斌老師的推薦,讓我有機(jī)會(huì)能夠參與到這本書(shū)的翻譯中。我很喜歡這本書(shū)的內(nèi)容組織,很榮幸能夠通過(guò)我的努力,把這本書(shū)介紹給國(guó)內(nèi)的讀者。
我是做科研的,科研工作者總是想把東西做得更完美一點(diǎn),所以開(kāi)始的時(shí)候特別細(xì),每一個(gè)和原文字句不太一致的地方都會(huì)糾結(jié)半天,但后來(lái)慢慢學(xué)習(xí)翻譯這 件事,可能對(duì)于科技書(shū)來(lái)說(shuō),,更追求準(zhǔn)確表達(dá)技術(shù)本身,后面翻譯的時(shí)候就調(diào)整了思路,更注重這方面。我現(xiàn)在再看一些文學(xué)方面的翻譯書(shū),會(huì)從翻譯角度去體會(huì), 確實(shí)很不一樣。翻譯還是挺有意思的,自己做的東西一直在累進(jìn),之前沒(méi)有這種長(zhǎng)時(shí)間閱讀和寫(xiě)作的經(jīng)歷,如果再有合適的書(shū),我還是愿意來(lái)做的。這次翻譯的過(guò)程 對(duì)我?guī)椭脖容^大,起碼寫(xiě)東西更快了(笑),我也想建議別人來(lái)做一次這樣的工作。
因?yàn)檫@本書(shū)都是我在業(yè)余時(shí)間完成的,加之工作繁忙,經(jīng)常打斷進(jìn)度,所以翻譯得非常慢。在翻譯的過(guò)程中,得到了圖靈多位編輯的幫助,沒(méi)有他們的支持和 激勵(lì),我想我是無(wú)法完成這個(gè)工作的。在翻譯的后期,經(jīng)常是每翻譯完一部分后,就發(fā)給編輯部。對(duì)我而言,這樣做很有效。我想如果編輯部能夠鼓勵(lì)譯者更多地進(jìn) 行有效溝通,特別是對(duì)翻譯新手,不僅可以及時(shí)改正翻譯中的錯(cuò)誤,也可以推動(dòng)翻譯工作的進(jìn)度。
本文轉(zhuǎn)載自:
本文關(guān)鍵詞:Hadoop實(shí)戰(zhàn),由筆耕文化傳播整理發(fā)布。
本文編號(hào):326635
本文鏈接:http://www.sikaile.net/wenshubaike/mishujinen/326635.html