本文主要介紹JindoFS的緩存模式(Cache),以及一些典型的應用場景。

概述

緩存模式兼容現有OSS存儲方式,文件以對象的形式存儲在OSS上,每個文件根據實際訪問情況會在本地進行數據和元數據的緩存,從而提高訪問數據以及元數據的性能,Cache模式提供不同元數據同步策略以滿足您在不同場景下的需求。

應用場景

緩存模式最大的特點就是兼容性,保持了OSS原有的對象語義,集群中僅做緩存,因此JindoFS和OSS客戶端、OssFileSystem等,或者其他的各種OSS的交互程序是完全兼容的,對原有OSS上的存量數據也不需要做任何的遷移、轉換工作即可使用。同時集群中的數據和元數據緩存也能一定程度上提升數據訪問性能。

配置集群

所有JindoFS相關配置都在Bigboot組件中,配置如下圖所示。

圖 1. 修改配置項
server_config
圖 2. 新增配置項
cong_sel
說明
  • 紅框中為必填的配置項。
  • 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。

cofig

元數據同步策略

緩存模式下可能存在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策略配置不生效。