討論:HDFS和OpenStack對(duì)象存儲(chǔ)的技術(shù)差異
譯文【51CTO獨(dú)家譯稿】最近在Quora上有人提到一個(gè)問題,有關(guān)Hadoop分布式文件系統(tǒng)和OpenStack對(duì)象存儲(chǔ)的不同。問題原文如下:
“Hadoop分布式文件系統(tǒng)(HDFS)和OpenStack對(duì)象存儲(chǔ)(OpenStack Object Storage)似乎都有著相似的目的:實(shí)現(xiàn)冗余、快速、聯(lián)網(wǎng)的存儲(chǔ)。什么樣的技術(shù)特性讓這兩種系統(tǒng)因而不一樣?這兩種存儲(chǔ)系統(tǒng)最終趨于融合是否大有意義?”
問題提出之后,很快有OpenStack的開發(fā)者進(jìn)行了回復(fù)。51CTO在此摘抄了前兩名回復(fù)進(jìn)行翻譯,以供各位參考。
排名第一的答案來自RackSpace的OpenStack Swift開發(fā)者Chuck Their:
雖然HDFS與Openstack對(duì)象存儲(chǔ)(Swift)之間有著一些相似之處,但是這兩種系統(tǒng)的總體設(shè)計(jì)卻大不一樣。
1. HDFS使用了中央系統(tǒng)來維護(hù)文件元數(shù)據(jù)(Namenode,名稱節(jié)點(diǎn)),而在Swift中,元數(shù)據(jù)呈分布式,跨集群復(fù)制。使用一種中央元數(shù)據(jù)系統(tǒng)對(duì)HDFS來說無異于單一故障點(diǎn),因而擴(kuò)展到規(guī)模非常大的環(huán)境顯得更困難。
2. Swift在設(shè)計(jì)時(shí)考慮到了多租戶架構(gòu),而HDFS沒有多租戶架構(gòu)這個(gè)概念。
3. HDFS針對(duì)更龐大的文件作了優(yōu)化(這是處理數(shù)據(jù)時(shí)通常會(huì)出現(xiàn)的情況),Swift被設(shè)計(jì)成了可以存儲(chǔ)任何大小的文件。
4. 在HDFS中,文件寫入一次,而且每次只能有一個(gè)文件寫入;而在Swift中,文件可以寫入多次;在并發(fā)操作環(huán)境下,以最近一次操作為準(zhǔn)。
5. HDFS用Java來編寫,而Swift用Python來編寫。
另外,HDFS被設(shè)計(jì)成了可以存儲(chǔ)數(shù)量中等的大文件,以支持?jǐn)?shù)據(jù)處理,而Swift被設(shè)計(jì)成了一種比較通用的存儲(chǔ)解決方案,能夠可靠地存儲(chǔ)數(shù)量非常多的大小不一的文件。
想了解HDFS架構(gòu)方面的信息,請(qǐng)?jiān)L問http://hadoop.apache.org/hdfs/docs/current/hdfs_design.html。
排名第二的答案來自Joshua McKenty,他是美國(guó)宇航局Nebula云計(jì)算項(xiàng)目的首席架構(gòu)師,是OpenStack Nova軟件的早期開發(fā)者之一,目前是OpenStack項(xiàng)目監(jiān)管委員會(huì)的成員,還是Piston.cc這家基于OpenStack的公司的創(chuàng)始人。
Chuck剛才詳細(xì)介紹了兩者的技術(shù)差異,但是沒有討論兩者可想而知的融合,OpenStack設(shè)計(jì)峰會(huì)上拋出了融合這個(gè)話題。簡(jiǎn)而言之,HDFS被設(shè)計(jì)成可以使用Hadoop,跨存儲(chǔ)環(huán)境里面的對(duì)象實(shí)現(xiàn)MapReduce處理。對(duì)于許多OpenStack公司(包括我自己的公司)來說,支持Swift里面的處理是路線圖上面的一個(gè)目標(biāo),不過不是每個(gè)人都認(rèn)為MapReduce是解決之道。
我們已討論過為HDFS編寫包裝器,這將支持OpenStack內(nèi)部存儲(chǔ)應(yīng)用編程接口(API),并且讓用戶可以針對(duì)該數(shù)據(jù)來執(zhí)行Hadoop查詢。還有一個(gè)辦法就是在Swift里面使用HDFS。但是這些方法似乎沒有一個(gè)是理想的。
OpenStack社區(qū)方面也在開展研究開發(fā)方面的一些工作,認(rèn)真研究其他替代性的MapReduce框架(Riak和CouchDB等)。
最后,現(xiàn)在有別的一些存儲(chǔ)項(xiàng)目,目前“隸屬于”OpenStack社區(qū)(SheepDog和HC2)。充分利用數(shù)據(jù)局部性,并且讓對(duì)象存儲(chǔ)變得“更智能”,這是預(yù)計(jì)會(huì)取得進(jìn)步的一個(gè)領(lǐng)域。
原文:http://www.quora.com/What-features-differentiate-HDFS-and-OpenStack-Object-Storage