學習筆記 - swift 物件儲存 和 檔案系統
物件儲存和檔案系統儲存區別:
所謂檔案系統的本質是POSIX介面,“物件”這個名詞是做物件儲存的人為了把自己做的東西和檔案系統區分開而用的術語,把存在物件儲存裡的檔案叫做“物件”,所以選擇檔案系統還是物件儲存,跟你把這堆資料稱作物件還是檔案並沒有直接關係,而是要看你是需要POSIX還是RESTful HTTP介面,是需要目錄結構還是適用扁平資料管理結構。
物件儲存概念:
RESTful介面和扁平的資料組織形式。
HDFS 和Swift 優缺點
首先,HDFS 是用來處理大吞吐量的離線資料,它需要犧牲一定的延時為代價,因此它不太適合哪些對延時有較高要求的應用程式。
其次,HDFS 被設計用來處理大資料檔案,它通常對大檔案進行優化,而在處理大量小檔案時反而會使其耗費更多記憶體,從而影響資料處理的效率。此外,HDFS 中一次只能寫入一個檔案,不支援多使用者併發寫入。
相反,Swift 用來儲存多個任意大小檔案的資料,而且支援對檔案多使用者併發寫入,但Swift 沒有目錄結構,不支援巢狀,也不支援檔案的重寫,只能新建,不支援伺服器上的資料查詢和處理,而且當容器的物件超過100 萬個時,其效能就會急劇下降。因此,如果能將HDFS 和Swift 儲存進行整合,可極大提高雲儲存的資料處理效率,降低硬體成本。
HDFS 和Swift 整合方式
Swift 介面卡的作用就是呼叫Swift 的Java 客戶端API,實現了對Swift 儲存的操作,Hadoop MapReduce API呼叫Hadoop FileSystem API,對於MapReduce 來說,底層的HDFS 和Swift 都是透明的
Spark 官網提供了 hadoop-openstack 來連線swift
Accessing OpenStack Swift from Spark
http://spark.apache.org/docs/2.3.0/storage-openstack-swift.html
參考:
http://blog.chinaunix.net/uid-7374279-id-4732346.html
https://blog.csdn.net/lanceyang1992/article/details/46456399
https://www.ibm.com/developerworks/cn/cloud/library/1401_ouyangf_hadoopswift/index.html