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