2011-04-06 84 views
4

最初,我只能處理1.5 [TB]的數據。由於我只需要快速寫入/讀取(沒有任何SQL),我設計了自己的平面二進制文件格式(使用python實現),並且輕鬆(並且高興地)保存了我的數據並在一臺機器上進行操作。當然,爲了備份目的,我添加了2臺機器用作精確的鏡像(使用rsync)。NoSql與我自己的自定義二進制文件?

目前,我的需求在不斷增長,需要構建一個能夠成功擴展到20 [TB](甚至更多)數據的解決方案。 我很樂意繼續使用我的平面文件格式存儲。這是快速,可靠,給我我需要的一切。

我關心的是複製,數據一致性等等(很明顯,數據將不得不分佈 - all data可以存儲在one machine)通過網絡。

是否有任何ready-made解決方案(Linux/python based),這將讓我繼續使用我的文件格式進行存儲,但會處理其他組件NoSql解決方案通常提供? (數據一致性/可用性/簡單複製)?

基本上,我想確定的是我的二進制文件在整個網絡中都是一致的。我使用的60芯雙核機的網絡(每個1GB RAM1.5TB disk

回答

1

方法:分佈式地圖減少在Python與迪斯科項目

好像接近你的問題的一個好辦法。我用the disco project也有類似的問題。

您可以在n臺機器(進程)之間分發文件,並實現地圖並減少符合邏輯的函數。

The tutorial of the disco project,正好描述瞭如何爲您的問題實施解決方案。你會留下深刻的印象,你需要編寫的代碼很少,而且你可以保留二進制文件的格式。

另一個類似的選項是使用Amazon's Elastic MapReduce

+0

謝謝,這看起來很有趣;你是否經歷過其他解決方案,如'cassandra'和'MangoDB'?我可以問一下使用'Disco'處理過的數據集大小嗎? – user3262424 2011-04-06 16:58:38

+0

...大約450GB。 – 2011-04-06 17:38:44

+0

您是否也在數據存儲中使用'disco',或者僅用於運行作業?如果是的話,它的數據存儲能力有多好? – user3262424 2011-04-07 00:52:40

相關問題