【272期門診集錦】大數據時代如何能夠駕馭Hadoop?

 技術門診是51CTO社區品牌欄目,每週邀請一位客座專家,爲廣大技術網友解答疑問。從熱門技術到前沿知識,從技術答疑到職業規劃。每期一個主題,站在最新最熱的技術前沿爲你引航!


本期我們特邀了國內Hadoop領域的兩位專家董西成、蔡斌來共同探討如何通過源代碼來掌握Hadoop的架構設計和實現原理,歡迎午飯積極提問和參與互動,與專家一起探討。

查看本期門診精彩實錄:http://doctor.51cto.com/develop-286.html

精選本期網友提問與專家解答,以供網友學習參考。

Q: 請問《Hadoop技術內幕》書籍適合那些技術人員閱讀?

Hadoop能給“雲計算”與“大數據”帶來那些性能提升,或者說如何提升Hadoop穩定性及高效性?

作爲一個初學者,要想掌握Hadoop先要有那些基礎,如何循序漸進學習好Hadoop?先感謝你的指導。

A: 《Hadoop技術內幕》對於有一定Hadoop基礎的人看有喲幫助,但需要說明的是,對於那些Hadoop應用程序開發者也會有很大幫助,畢竟只有瞭解了Hadoop內部原理才能編寫出更加高效的程序。

Hadoop主要優點是免費、擴展性好、容錯性好和易於編程,Hadoop目前有穩定版本,對於大部分公司,已經夠用了,你可以直接編寫MapReduce程序,也可以使用SQL處理數據(這樣開發效率更高)。

Hadoop初學者應該多實踐,搭建一個Hadoop集羣,使用它,玩弄它,感受它,然後在實踐中不斷深入理解他。


Q: hadoop2.0+版本與1.0及以下版本差距有多大,如果是全新搭建hadoop環境,用哪個版本比較適合?

A: 現在Hadoop 2.0還不成熟穩定,大部分公司仍在使用1.0,,如果剛開始使用Hadoop,搭建一個全新的環境,推薦使用最新的穩定版,目前主流的是apache的1.1.2(下載地址:http://mirror.bit.edu.cn/apache/hadoop/common/stable/). cloudera的cdh3u6(下載地址:http://archive.cloudera.com/cdh/3/hadoop-0.20.2-cdh3u6.tar.gz),這兩種發行版的對比可參考我的這篇文章:http://dongxicheng.org/mapreduce-nextgen/how-to-select-hadoop-versions/


Q: mapreduce適合做實時系統嗎?我個人認爲一個實時系統至少應符合低延遲、高性能、可擴展等的特性,就低延遲而言,mapreduce明顯略爲遜色。是否有某種架構方式能改善mapreduce的這些缺點?

A: Hadoop最初設計動機是提供一個容錯性好、擴展性好、易於編程的計算框架MapReduce,特點是適合離線計算,隨着業務發展,實時計算有了新的需求,現在已經出現了很多實時框架,包括 Storm,Spark和yahoo s4等,這些框架的數據來源均可以是HDFS,且都是開源的,思想是減少寫磁盤,任務熱啓動,基於內存等,其中,Storm已被很多大型公司使用,包括陶淘寶。


Q: 以往 Hadoop 似乎就是大數據的代名詞。不過最近隨着大數據應用的深入,大家已經越來越傾向於僅僅把它看成是大數據的一個存儲工具了。

我想問下,對於把Hadoop作爲廉價的存儲工具真的合適嗎?是不是因爲開源、代碼成熟、穩定而說明它是廉價的?對於視頻類網站來說,他們存儲模型是如何設計的?

我還想問的是,對於基於Hadoop的應用開發,相較與傳統oop,在分析和設計上有哪些異同點和需要注意的地方?也就是設計的角度可以從哪些方面入手?

A: 視頻領域,是Hadoop應用的一個典型代表,因爲數據量大,很多視頻處理算法都可以並行化。

Hadoop的提出,使得應用程序的開發與傳統oop非常相近,不過處理問題時,要轉化成Hadoop要求的格式和規範,比如用MapReduce護理問題時,要將問題轉化成map和reduce兩個階段。


Q: 二位老師好,我對Hbase有一定的理論瞭解,但是不知道Hbase的應用與實踐。現在我的業務需要使用數據庫支持,但是業務邏輯是依據關係型數據庫而設計的。但是Base好像不支持條件查詢,只支持按照ROW KEY來查詢,這對對我的業務來說是不可接受的(業務需要多表關聯或者join操作)。

對於這種關心型業務邏輯 想使用hbase這樣的數據庫來說,合適嗎?有解嗎?我實在不想使用mysql這樣的數據庫,因爲數據量增大時,性能就會出現瓶頸,而我的數據量卻可能呈直線上升。

另外,對於碎片文件,您推薦使用hbase,爲什麼要這樣設計?HBase應用的典型案例有哪些呢?

再次感謝!

A: HBase是一個實時存取系統,它沒有嚴格的schema的概念,優點是擴展性和容錯性好,但它不適合有多表join的場景。

通常而言,如果有join操作,可以將HBase和數據庫結合起來使用,各自發揮優勢。

碎片文件推薦使用hbase是相對於HDFS而言的,Hadoop中有兩種對外存儲,一個是HDFS,一個是hbase。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章