本文主要介紹JindoFS的Block Storage模式(Block),以及一些典型的應用情境。
概念
Block Storage模式提供了最為高效的資料讀寫能力和中繼資料訪問能力,並且能夠支援更加全面的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 | 容易 |
| 資料本地化 | 無 | 弱 | 強 | 較強 |
JindoFSBlock Storage模式具有以下幾個特點:
- 海量彈性的儲存空間,基於OSS作為儲存後端,儲存不受限於本地叢集,而且本地叢集能夠自由Auto Scaling。
- 能夠利用本地叢集的儲存資源加速資料讀取,適合具有一定本機存放區能力的叢集,能夠利用有限的本機存放區提升吞吐率,特別對於一寫多讀的情境效果顯著。
- 中繼資料操作效率高,能夠與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 Storage模式。 | 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]