標(biāo)簽: 雜談 |
【MapR初探】
EMC中國研究院 向東
【1.
MapR成立于2009年,但是引起媒體廣泛關(guān)注是緣由GIGAOM網(wǎng)站2011年3月的一篇報(bào)道《MapR,Cloudera的新對(duì)手》(http://gigaom.com/cloud/meet-mapr-a-competitor-to-hadoop-leader-cloudera/ ),報(bào)道這么描述MapR:
“構(gòu)建一個(gè)HDFS的私有替代品,這個(gè)替代品比當(dāng)前的開源版本快三倍,自帶快照功能,而且支持無Namenode單點(diǎn)故障(SPOF),并且在API上和兼容,所以可以考慮將其作為替代方案。”
這篇報(bào)道隨即被InfoQ引用 (http://www.infoq.com/cn/news/2011/03/structure_big_data
到了5月,確切的說,是5月25號(hào),另一個(gè)爆炸性的新聞被披露了。這天,EMC World 2011上,EMC宣布,將在自己推出的Greenplum HD企業(yè)版Hadoop中采用MapR的技術(shù)。一時(shí)間,MapR處于全球技術(shù)媒體的聚光燈下,人們不禁要問,MapR到底提供了什么,為什么會(huì)被EMC選中作為合作伙伴呢?
GreenPlum HD,會(huì)跳舞的大象
【2.
Hadoop,大數(shù)據(jù)處理的寵兒,現(xiàn)今IT媒體聚光燈的焦點(diǎn),如同希臘神話中的勇士阿喀琉斯一樣,有著傳奇的出身:Hadoop的主要設(shè)計(jì)思想,來自兩篇著名的Google論文:《MapReduce: Simplified Data Processing on Large Clusters》http://labs.google.com/papers/mapreduce.html
Hadoop有兩個(gè)主要的子系統(tǒng),Hadoop 分布式文件系統(tǒng)HDFS和Hadoop Map/Reduce。HDFS是Hadoop的分布式存儲(chǔ)子系統(tǒng),用戶的數(shù)據(jù)文件,會(huì)被切分成64M大小的block(block的大小是可調(diào)的,64M是Google在實(shí)踐中總結(jié)出來的一個(gè)優(yōu)選參數(shù)),經(jīng)過Namenode協(xié)調(diào),存放在不同的DataNode上。對(duì)于任何一個(gè)HDFS文件,Namenode會(huì)在內(nèi)存中維護(hù)兩種meta data:1) HDFS文件和block的對(duì)應(yīng)關(guān)系 ,2)block在data node上存放的位置。Namenode會(huì)在磁盤上保存第一種meta data (通過checkpoint 文件和write ahead log),第二種meta data則是DataNode通過block report 定時(shí)發(fā)送給NameNode。
上述構(gòu)架簡潔優(yōu)雅,而且Google在工程實(shí)踐中也證明了這個(gè)構(gòu)架的可用性和可靠性。但是隨著Hadoop被廣泛應(yīng)用,面對(duì)各種不同的需求,人們也漸漸的發(fā)現(xiàn)了Hadoop的阿喀琉斯之踵??偨Y(jié)下來,主要有以下3大方面:
1)
2)
3)
Hadoop的這些缺點(diǎn)也帶來了巨大的機(jī)會(huì),Cloudera的目光最為敏銳,最早看到這一點(diǎn)。Cloudera的商業(yè)模式和一般Open Source創(chuàng)業(yè)公司無異:網(wǎng)羅Hadoop的contributor,積極的回饋Hadoop社區(qū),在此基礎(chǔ)上發(fā)布自己的Hadoop發(fā)行版CDH(Cloudera's Distribution including Apache Hadoop),提供各種增值服務(wù)。實(shí)際上,CDH版Hadoop具有相當(dāng)高的知名度。
MapR則認(rèn)為,Hadoop的這些缺陷來自于其架構(gòu)設(shè)計(jì)本身,小修小補(bǔ)不能解決問題。他們選擇了一條艱難得多的路:用新架構(gòu)重寫HDFS,同時(shí)在API級(jí)別,和目前的Hadoop 發(fā)行版保持兼容。這家2009年成立的創(chuàng)業(yè)公司,在蟄伏了兩年之后,終于一鳴驚人,大放異彩。回顧前面GIGAOM的報(bào)道:
“構(gòu)建一個(gè)HDFS的私有替代品,這個(gè)替代品比當(dāng)前的開源版本快三倍,自帶快照功能,而且支持無Namenode單點(diǎn)故障(SPOF),并且在API上和兼容,所以可以考慮將其作為替代方案。”
MapR真的做到了。
【3.
2011年6月,在Hadoop 2011峰會(huì)上,MapR的創(chuàng)始人M.C. Srivas做了名為《Design, Scale and Performance of MapR's Distribution for Hadoop》的演講(http://www.mapr.com/blog/2011/07/the-design-scale-and-performance-of-maprs-distribution-for-apache-hadoop.html ),比較詳細(xì)的介紹了MapR設(shè)計(jì)原則,部分實(shí)現(xiàn)細(xì)節(jié)以及MapR的性能,外界也第一次從內(nèi)部了解MapR Hadoop。演講的錄像和PPT隨后被公布在Youtube和Slideshare(http://www.slideshare.net/mcsrivas/design-scale-and-performance-of-maprs-distribution-for-hadoop ),
MapR認(rèn)為,解決Hadoop的種種問題,要采用以下設(shè)計(jì)思想:
1)
2)
3)
4)
通過上述方式,MapR期望這種設(shè)計(jì)能極大的提高Hadoop的擴(kuò)展能力,比如支持的節(jié)點(diǎn)數(shù)目從當(dāng)前2000個(gè)左右擴(kuò)展到10000個(gè)以上,系統(tǒng)文件容量從10-50PB擴(kuò)展到1-10EB,文件數(shù)量從1.5億擴(kuò)展到1萬億(1 trillion)左右。同時(shí),系統(tǒng)還需要支持完全的隨機(jī)讀寫以及一系列企業(yè)應(yīng)用特性,比如快照,mirror等等。MapR還期望在性能上有所突破,盡可能的榨取硬件的能力,并能對(duì)新的硬件技術(shù)(固態(tài)硬盤,萬兆網(wǎng)卡等)提供支持。
縱觀其實(shí)現(xiàn),整個(gè)MapR的核心是其分布式NameNode,在MapR的設(shè)計(jì)中,分布式的NameNode又被稱作Container,和Hadoop原始設(shè)計(jì)中的Namenode不一樣的是,Container不僅維護(hù)了用戶文件的meta data,也維護(hù)數(shù)據(jù)塊。每個(gè)Container的大小在16GB-32GB之間(這也就意味著一個(gè)node上會(huì)有很多個(gè)container),同一個(gè)Container在不同node間有replica。
對(duì)于用戶來說,Container的概念過于底層,MapR引入了Volume的概念來降低使用用戶門檻和提高系統(tǒng)的靈活性。 MapR Volume(http://www.mapr.com/doc/display/MapR/Volumes)的概念和傳統(tǒng)存儲(chǔ)概念意義上的Volume相當(dāng)類似,用戶不需要直接管理Container,相應(yīng)的,用戶通過管理volumes來管理Container:用戶可以為每個(gè)Volume指定不同的大小限制,replication level等參數(shù)。此外,用戶還可以對(duì)volume建立snapshot,mirror等。
Container,volume相關(guān)的meta data被維護(hù)在被稱為CLDB中(container location database,http://www.mapr.com/doc/display/MapR/Glossary#Glossary-containerlocationdatabas
采用分布式Namenode的一個(gè)必然結(jié)果就是要處理大量的分布式事務(wù): 用戶有可能同時(shí)操作兩個(gè)Container。 針對(duì)這種情況, MapR認(rèn)為傳統(tǒng)的兩階段提交和基于Quarum 的協(xié)議(例如Paxos)都有局限性,他們提出了新的解決方案: MapR lockless transaction。Srivas的講座并沒有過多討論MapR lockless transaction的細(xì)節(jié),從有限的幾張PPT里面,我們還是可以得知一二的:
1)
2)
3)
4)
5)
MapR聲稱這種實(shí)現(xiàn)方式有很高的吞吐率,而且事務(wù)進(jìn)行過程中不需要鎖,而且因?yàn)閃AL的存在,如果事務(wù)進(jìn)行過程中出現(xiàn)程序崩潰也無所謂。實(shí)際上,MapR lockless transaction的實(shí)現(xiàn)是仔細(xì)分析了MapR 分布式事務(wù)的特點(diǎn)以后的一種設(shè)計(jì)折中:作為大數(shù)據(jù)分析平臺(tái),Hadoop要處理的數(shù)據(jù)集并往往是只讀或者讀多寫少(當(dāng)前版本的Hadoop HDFS實(shí)際上是只讀的),分布式事務(wù)存在沖突的幾率比較小,就是說,代價(jià)很大的回滾操作執(zhí)行的幾率很小,在這種情況下,放棄開銷很大的鎖機(jī)制是劃算的。
除了分布式Namenode這個(gè)大亮點(diǎn)之外,MapR還實(shí)現(xiàn)了一系列高級(jí)特性,對(duì)原來Hadoop的功能進(jìn)行了大幅度的增強(qiáng)。這其中最吸引眼球的有兩點(diǎn):
1)
2)
以上簡要介紹了MapR
Hortonworks,三象行,必有我?guī)熝?/span>
相對(duì)于舞臺(tái)上的其他競(jìng)爭對(duì)手,MapR獨(dú)辟蹊徑,利用當(dāng)前的Hadoop的一些弱點(diǎn)獲得了巨大的關(guān)注和影響力。展望未來,MapR會(huì)如何發(fā)展捏?我覺得MapR必須有心理準(zhǔn)備應(yīng)付Hadoop的快速發(fā)展。Hadoop暴露各種問題已經(jīng)廣為知曉,Hadoop 2.0也在如火如荼的規(guī)劃和實(shí)現(xiàn)中(http://www.oscon.com/oscon2011/public/schedule/detail/19234 ),在不久的將來,Hadoop將會(huì)有劇烈的變化。那么,要保持和新版的Hadoop API兼容的同時(shí)還保留自己的種種優(yōu)點(diǎn)(高性能,高可用性,各種企業(yè)特性)是非常有挑戰(zhàn)性的工作,MapR的天才們會(huì)交出怎樣的答案?我們拭目以待。
【完】
關(guān)于作者:
向東(@朝東走),EMC中國研究院高級(jí)研究員,主要關(guān)注云計(jì)算,分布式系統(tǒng)和大數(shù)據(jù)。
(注,本文根據(jù)公開資料收集整理而成,文中各種技術(shù)觀點(diǎn),如有不妥,歡迎指正。)
聯(lián)系客服