大資料儲存平臺之異構儲存實踐深度解讀
經常做資料處理的夥伴們肯定會有這樣一種體會:最近一週內的資料會被經常使用到,而比如最近幾周的資料使用率會有下降,每週僅僅被訪問幾次;在比如3月以前的資料使用率會大幅下滑,儲存的資料可能一個月才被訪問幾次。
這就產生了一種熱和冷資料,對需要頻繁訪問的資料我們稱之為“熱”資料,反之我們稱之為”冷”資料,而處於中間的資料我們稱之為”溫”資料。
在資料被視為公司資產的時代,每個公司基本都會儲存最近數年的資料,而這些資料尤其是冷資料的累積也給儲存平臺帶來了甜蜜的負擔。下面就來分享下如何解決這些“負擔”。
首先如何定義資料為冷熱資料呢,eBay公司根據資料年齡和使用頻率來定義不失為一種辦法,下圖為eBay關於資料溫度的定義
從hadoop2.6開始,HDFS更好的支援了這種冷熱資料的分離儲存,我們可以按HDFS路徑指定其儲存策略,目前HDFS支援的儲存策略有:HOT、WARM、COLD、All_SSD、One_SSD、Lazy_Persist,我們著重介紹SSD相關的儲存策略,具體如下:
All_SSD – 用於將所有副本儲存在SSD中
One_SSD – 用於將其中一個副本儲存在SSD中。剩餘的副本儲存在DISK中
Lazy_Persist – 用於在記憶體中寫入單個副本的塊。該副本首先寫入RAM_DISK,然後在DISK中延續
建立檔案或目錄時,其儲存策略未指定。可以使用“hdfs dfsadmin -setStoragePolicy ”命令指定儲存策略。檔案或目錄的有效儲存策略由以下規則解決。
1. 如果檔案或目錄特定於儲存策略,則返回。
2. 對於未指定的檔案或目錄,如果是根目錄,則返回預設儲存策略。否則,返回其父級的有效儲存策略。
我們在實踐過程中,因為有一部分實時分析的需求,一部分是歷史資料的儲存,歷史資料很少參與計算,只需偶爾查詢會用到。那麼對於歷史資料來說,我們可以使用一批計算能力較弱,而硬碟較多、容量較大的SATA盤,而實時分析的場景,需要高效能的計算力和硬碟吞吐能力,我們選用SSD硬碟來支撐,此外HDFS還提供了記憶體儲存型別,但我們的記憶體還是有限,暫未使用到。實際上,我們的每臺伺服器的12塊硬碟slot中有3個是SSD,其餘9個是SATA。我們實踐結果表明,使用這種策略的效果比以前好了4倍以上。
要使用儲存策略,我們需要在在每個資料節點上hdfs-site.xml中引數dfs.datanode.data.dir配置的由逗號分隔的儲存位置使用的儲存型別進行標記。例如:
1. 使用[DISK]file:///dfs/dn來標識這個儲存位置為普通硬碟
2. 使用[SSD]file:/// dfs/dn來標識這個儲存位置為SSD硬碟
此外,預設情況下的儲存格式為DISK。
下面介紹設定儲存策略命令:
hdfsstoragepolicies -setStoragePolicy -path -policy
相應的獲取儲存策略命令為:
hdfs storagepolicies -getStoragePolicy -path
總結下:我們可以在一個限定的Hadoop叢集中進行設定不同的磁碟使用不同的儲存策略,還可以利用API將資料儲存到不同的儲存層。HDFS設計的詳細儲存型別和儲存策略如下表,有興趣的同學可以看看:
注:HDFS新加的ARCHIVE儲存型別, 它是一種支援PB級的高容量儲存但很少的 計算能力,用於歸檔資料使用,從上圖可以看出冷資料適合使用archive儲存型別。
原文釋出時間為:2018-06-7
本文來自雲棲社群合作伙伴“IT168”,瞭解相關資訊可以關注“IT168”。
相關文章
- 儲存系列1-openfiler開源儲存管理平臺實踐
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫
- 星環科技多模型資料統一儲存的大資料分散式儲存平臺方案分享模型大資料分散式
- 資料儲存(歸檔解檔,沙河儲存)
- 小米大資料儲存服務的資料治理實踐大資料
- Android中的資料儲存之檔案儲存Android
- k8s之資料儲存-配置儲存K8S
- 資料儲存--檔案儲存
- 儲存資料之SharedPreference
- VSAN儲存結構解析+儲存資料恢復案例資料恢復
- OceanBase 原始碼解讀(九):儲存層程式碼解讀之「巨集塊儲存格式」原始碼
- k8s之資料儲存-高階儲存K8S
- Spring Boot資料儲存最佳實踐 - AhadSpring Boot
- hadoop異構儲存+lucene索引Hadoop索引
- HBase 資料儲存結構
- 大資料開發的儲存技術探索與實踐大資料
- 海量非結構化資料儲存難題 ,杉巖資料物件儲存完美解決物件
- Redis資料儲存和讀寫Redis
- OpenTSDB 資料儲存詳解
- 資料儲存(1):從資料儲存看人類文明-資料儲存器發展歷程
- 基於Ceph物件儲存構建實踐物件
- Shopee ClickHouse 冷熱資料分離儲存架構與實踐架構
- OceanBase 儲存層程式碼解讀(三)巨集塊儲存格式
- OceanBase 儲存層程式碼解讀(二)微塊儲存格式
- 聚焦資料時代新儲存需求,浪潮儲存的新儲存之道
- 分散式系統中資料儲存方案實踐分散式
- 雲知聲: 基於 JuiceFS 的超算平臺儲存實踐UI
- java+pgsql實現儲存圖片到資料庫,以及讀取資料庫儲存的圖片JavaSQL資料庫
- TiDB資料儲存TiDB
- 資料儲存:CoreData
- iOS 資料儲存iOS
- 雲上大資料儲存:探究 JuiceFS 與 HDFS 的異同大資料UI
- Druid:實時分析資料儲存UI
- 圖解vsan儲存結構/資料恢復方法圖解資料恢復
- MyRocks儲存引擎資料結構解析儲存引擎資料結構
- 詳解資料庫儲存的資料結構LSM Tree資料庫資料結構
- Flutter持久化儲存之檔案儲存Flutter持久化
- 大模型儲存實踐:效能、成本與多雲大模型