Posted on 2012-04-15 16:37
zljpp 閱讀(116)
評論(0) 編輯 收藏
當下,互聯網行業發展非常迅猛,分布式文件系統在其中的應用也非常普遍。一些朋友問起一些相關問題,如:
1. 搜索引擎類的那些頁面文本文件存儲,用什么DFS比較好?
2. 海量小圖片類的,如taobao里頭,好多商家圖片,用什么存儲?
3. 視頻類的,如優酷,用什么DFS
4. 海量空間地理圖形信息類的?
這都是非常有意義的問題。DFS有很多,各有自己的特點。
1. 這個,HDFS似乎就可以滿足。它只需要能把那些文本文件分塊分散到各個節點上進行順序存儲就行了。缺點呢,就是:目前Hadoop只支持單用戶寫,不支持并發多用戶寫。可以使用Append操作在文件的末尾添加數據,但不支持在文件的任意位置進行修改。所以,它并不一定適合于一些特定的場景應用。比如,某些應用就是要求修改某個文件的局部內容,同時要求沒有什么大的性能損失。
2. taobao專門為它開發一套DFS,叫TFS. 它好像是按照默認64M來全局組塊的。多個小圖片文件可以存到同一個塊中。name server有主和備。chunk server或叫data server節點用于存儲實際的數據。在單機里頭,無數的小文件如果聚集到一個目錄下邊,訪問某個小文件,效率是非常低的,將多個小文件聚成一個大文件,在這里優勢就體現出來了。taotao在具體實施過程當中,還弄了個主備中心的要領,主中心可讀可寫,備中心是主中心的副本,只提供讀,這樣在主中心失敗的情況下,備中心可以繼續提供無損的服務。其介紹詳見:http://code.taobao.org/p/tfs/wiki/index/
3. 視頻類的,單個文件大小大多在幾十兆或上百兆,與TAOTAO里的小圖片(幾K到幾十K)又不一樣。參照TAOBAO的文件系統,也許可以一試。GFS或者MooseFS也可以一試。商家,國內有個公司叫龍存,不知道費用如何。使用TFS,單文件跨塊存儲,如果支持的話,倒不妨一試。
4. 這個問題應該分成兩塊,
矢量圖形數據本身,應該還要借助于空間數據庫(如Oracle Spatial, PostGIS, ArcSDE引擎等)進行存儲,因為它還是涉及到事務處理的。對外展現的圖形(影像),分級分塊,可以借助于小文件聚合的思想。但是數據量,未必有前邊3個那么大。普通的可隨機讀寫的GFS是不是能滿足需求?