本文主要介紹JindoFS的塊存儲模式(Block),以及一些典型的應用場景。
概念
塊存儲模式提供了最為高效的數據讀寫能力和元數據訪問能力,并且能夠支持更加全面的Hadoop文件系統語義。同時,JindoFS也提供了外部客戶端,能夠從集群外部訪問建立在E-MapReduce集群內的JindoFS文件系統。
數據以Block形式存儲在后端存儲OSS上,本地Namespace服務維護元數據信息,該模式在性能上較優,無論是數據性能還是元數據性能。
應用場景
E-MapReduce目前提供了三種大數據存儲系統,E-MapReduce OssFileSystem、E-MapReduce HDFS和E-MapReduce JindoFS,其中OssFileSystem和JindoFS都是云上存儲的解決方案,下表為這三種存儲系統和開源OSS各自的特點。
特點 | 開源OSS | E-MapReduce OssFileSystem | E-MapReduce HDFS | E-MapReduce JindoFS |
---|---|---|---|---|
存儲空間 | 海量 | 海量 | 取決于集群規模 | 海量 |
可靠性 | 高 | 高 | 高 | 高 |
吞吐率因素 | 服務端 | 集群內磁盤緩存 | 集群內磁盤 | 集群內磁盤 |
元數據效率 | 慢 | 中 | 快 | 快 |
擴容操作 | 容易 | 容易 | 容易 | 容易 |
縮容操作 | 容易 | 容易 | 需Decommission | 容易 |
數據本地化 | 無 | 弱 | 強 | 較強 |
JindoFS塊存儲模式具有以下幾個特點:
- 海量彈性的存儲空間,基于OSS作為存儲后端,存儲不受限于本地集群,而且本地集群能夠自由彈性伸縮。
- 能夠利用本地集群的存儲資源加速數據讀取,適合具有一定本地存儲能力的集群,能夠利用有限的本地存儲提升吞吐率,特別對于一寫多讀的場景效果顯著。
- 元數據操作效率高,能夠與HDFS相當,能夠有效規避OSS文件系統元數據操作耗時以及高頻訪問下可能引發不穩定的問題。
- 能夠最大限度保證執行作業時的數據本地化,減少網絡傳輸的壓力,進一步提升讀取性能。
配置集群
所有JindoFS相關配置都在Bigboot組件中,配置如下圖所示。
- 紅框中為必填的配置項。
- JindoFS支持多命名空間,本文命名空間以test為例。
參數 | 參數說明 | 示例 |
---|---|---|
jfs.namespaces | 表示當前JindoFS支持的命名空間,多個命名空間時以逗號隔開。 | test |
jfs.namespaces.test.uri | 表示test命名空間的后端存儲。 | oss://oss-bucket/oss-dir
說明 該配置也可以配置到OSS bucket下的具體目錄,該命名空間即以該目錄作為根目錄來讀寫數據。
|
jfs.namespaces.test.mode | 表示test命名空間為塊存儲模式。 | block |
jfs.namespaces.test.oss.access.key | 表示存儲后端OSS的AccessKey ID。 | xxxx
說明 考慮到性能和穩定性,推薦使用同賬戶、同region下的OSS bucket作為存儲后端,此時,E-MapReduce集群能夠免密訪問OSS,無需配置AccessKey
ID和AccessKey Secret。
|
jfs.namespaces.test.oss.access.secret | 表示存儲后端OSS的AccessKey Secret。 |
配置完成后保存并部署,然后在SmartData服務中重啟Namespace Service,即可開始使用JindoFS。
存儲策略
JindoFS提供了Storage Policy功能,提供更加靈活的存儲策略適應不同的存儲需求,可以對目錄設置以下四種存儲策略。
策略 | 策略說明 |
---|---|
COLD | 表示數據僅在OSS上有一個備份,沒有本地備份,適用于冷數據存儲。 |
WARM |
默認策略。 表示數據在OSS和本地分別有一個備份, 本地備份能夠有效的提供后續的讀取加速。 |
HOT | 表示數據在OSS上有一個備份,本地有多個備份,針對一些最熱的數據提供更進一步的加速效果。 |
TEMP | 表示數據僅有一個本地備份,針對一些臨時性數據,提供高性能的讀寫,但降低了數據的高可靠性,適用于一些臨時數據的存取。 |
JindoFS提供了Admin工具設置目錄的Storage Policy(默認為 WARM),新增的文件將會以父目錄所指定的Storage Policy進行存儲,使用方式如下所示。
jindo dfsadmin -R -setStoragePolicy [path] [policy]
通過以下命令,獲取某個目錄的存儲策略。
jindo dfsadmin -getStoragePolicy [path]
Admin工具還提供archive命令,實現對冷數據的歸檔。
此命令提供了一種用戶顯式淘汰本地數據塊的方式。Hive分區表按天分區,假如業務上對一周前的分區數據認為不會再經常訪問,那么就可以定期將一周前的分區目錄執行archive,淘汰本地備份,文件備份將僅僅保留在后端OSS上。
Archive命令的使用方式如下:
jindo dfsadmin -archive [path]