本文主要介紹JindoFS的緩衝模式(Cache),以及一些典型的應用情境。
概述
緩衝模式相容現有OSS儲存方式,檔案以對象的形式儲存在OSS上,每個檔案根據實際訪問情況會在本地進行資料和中繼資料的緩衝,從而提高訪問資料以及中繼資料的效能,Cache模式提供不同中繼資料同步策略以滿足您在不同情境下的需求。
應用情境
緩衝模式最大的特點就是相容性,保持了OSS原有的對象語義,叢集中僅做緩衝,因此JindoFS和OSS用戶端、OssFileSystem等,或者其他的各種OSS的互動程式是完全相容的,對原有OSS上的存量資料也不需要做任何的遷移、轉換工作即可使用。同時叢集中的資料和中繼資料快取也能一定程度上提升資料訪問效能。
配置叢集
所有JindoFS相關配置都在Bigboot組件中,配置如下圖所示。


說明
- 紅框中為必填的配置項。
- JindoFS支援多命名空間,本文命名空間以test為例。
| 參數 | 參數說明 | 樣本 |
| jfs.namespaces | 表示當前JindoFS支援的命名空間,多個命名空間時以逗號隔開。 | test |
| jfs.namespaces.test.uri | 表示test命名空間的後端儲存。 | oss://oss-bucket/
說明 該配置也可以配置到OSS bucket下的具體目錄,該命名空間即以該目錄作為根目錄來讀寫資料,但一般情況下配置bucket即可,這樣路徑就和原生OSS保持一致。 |
| jfs.namespaces.test.mode | 表示test命名空間為緩衝模式。 | cache |
| 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叢集構建之前,您已經在OSS上儲存了大量資料的情境,對於這種情境,後續的資料訪問會同步資料和中繼資料到JindoFS叢集,資料同步策略為了訪問資料都會在本地保留一份;中繼資料同步策略分為兩部分,包括中繼資料同步間隔策略和中繼資料load策略:
-
中繼資料同步間隔策略:
配置參數為namespace.sync.interval, 該參數預設值為-1, 表示不會同步OSS上的中繼資料。
- 當namespace.sync.interval=0時,表示每次操作都會同步OSS上的中繼資料。
- 當namespace.sync.interval>0時,表示會以固定的時間間隔來同步OSS上的中繼資料。
說明 例如當namespace.sync.interval=5時, 表示每隔5秒會去同步OSS上的中繼資料。
-
中繼資料Load策略:
配置參數為namespace.sync.loadtype,該配置參數為枚舉類型{never, once, always},never表示從不同步OSS上的中繼資料;once為預設配置,表示只從OSS同步一次中繼資料;always表示每次操作都會同步OSS上的中繼資料。
說明 當不配置namespace.sync.interval參數時,才會去使用Load策略;如果已配置namespace.sync.interval參數,則Load策略配置不生效。