全部產品
Search
文件中心

E-MapReduce:JindoFS緩衝模式使用說明

更新時間:Jul 01, 2024

緩衝模式(Cache)主要相容原生OSS儲存方式,檔案以對象的形式儲存在OSS上,每個檔案根據實際訪問情況會在本地進行緩衝,提升EMR叢集內訪問OSS的效率,同時相容了原有OSS原有檔案形式,資料訪問上能夠與其他OSS用戶端完全相容。本文主要介紹JindoFS的緩衝模式及其使用方式。

背景資訊

緩衝模式最大的特點就是相容性,保持了OSS原有的對象語義,叢集中僅做緩衝,因此和其他的各種OSS用戶端是完全相容的,對原有OSS上的存量資料也不需要做任何的遷移、轉換工作即可使用。同時叢集中的緩衝也能一定程度上提升資料訪問效能,緩解讀寫OSS的頻寬壓力。

配置使用方式

JindoFS緩衝模式提供了以下兩種基本使用方式,以滿足不同的使用需求。

配置OSS Scheme(推薦)

OSS Scheme保留了原有OSS檔案系統的使用習慣,即直接通過oss://<bucket_name>/<path_of_your_file>的形式訪問OSS上的檔案。使用該方式訪問OSS,無需進行額外的配置,建立EMR叢集後即可使用,對於原有讀寫OSS的作業也無需做任何修改即可運行。

配置JFS Scheme

  1. 進入SmartData服務。
    1. 登入阿里雲E-MapReduce控制台
    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組
    3. 單擊上方的叢集管理頁簽。
    4. 叢集管理頁面,單擊相應叢集所在行的詳情
    5. 在左側導覽列,選擇叢集服務 > SmartData
  2. 進入bigboot服務配置頁面。
    1. 單擊配置頁簽。
    2. 單擊bigboot
      bigboot
  3. 配置以下參數。
    JindoFS支援多命名空間,本文命名空間以test為例。
    1. 修改jfs.namespacestest
      test表示當前JindoFS支援的命名空間,多個命名空間時以逗號(,)隔開。
    2. 單擊自訂配置,在新增配置項對話方塊中增加以下參數。
      參數 參數說明 樣本
      jfs.namespaces.test.oss.uri 表示test命名空間的後端儲存。 oss://<oss_bucket>/<oss_dir>/
      說明 該配置必須配置到OSS bucket下的具體目錄,也可以直接使用根目錄。
      jfs.namespaces.test.mode 表示test命名空間為緩衝模式。 cache
  4. 單擊右上方的儲存
  5. 單擊右上方的操作 > 重啟 Jindo Namespace Service
    重啟後即可通過jfs://test/<path_to_your_file>的形式訪問,該命名空間下的檔案會以jfs.namespaces.test.oss.uri所配置的目錄作為根目錄進行組織,例如jfs://test/hello.txt對應實際OSS上的檔案為oss://<oss_bucket>/<oss_dir>/hello.txt

啟用緩衝

啟用緩衝會利用本地磁碟對訪問的熱資料區塊進行緩衝,預設狀態為禁用,即所有OSS讀取都直接存取OSS上的資料。

  1. 叢集服務 > SmartData配置頁面,單擊client頁簽。
  2. 修改jfs.cache.data-cache.enable1,表示啟用緩衝。
    此配置為用戶端配置,不需要重啟SmartData服務。

緩衝啟用後,Jindo服務會自動管理本機快取備份,通過水位清理本機快取,請您根據需求配置一定的比例用於緩衝,詳情請參見磁碟空間水位控制

磁碟空間水位控制

JindoFS後端基於OSS,可以提供海量的儲存,但是本地碟的容量是有限的,因此JindoFS會自動淘汰本地較冷的資料備份。我們提供了storage.watermark.high.ratiostorage.watermark.low.ratio兩個參數來調節本機存放區的使用容量,值均為0~1的小數,表示使用磁碟空間的比例。

  1. 修改磁碟水位配置。
    可以在服務配置地區的storage頁簽,修改以下參數。storage
    參數描述
    storage.watermark.high.ratio表示磁碟使用量的上水位比例,每塊資料盤的JindoFS資料目錄佔用的磁碟空間到達上水位即會觸發清理。預設值:0.4。
    storage.watermark.low.ratio表示使用量的下水位比例,觸發清理後會自動清理冷資料,將JindoFS資料目錄佔用空間清理到下水位。預設值:0.2。
    說明 您可以通過設定上水位比例調節期望分給JindoFS的磁碟空間,下水位必須小於上水位,設定合理的值即可。
  2. 儲存配置。
    1. 單擊右上方的儲存
    2. 確認修改對話方塊中,輸入執行原因,開啟自動更新配置
    3. 單擊確定
  3. 重啟Jindo Storage Service使配置生效。
    1. 選擇右上方的操作 > 重啟Jindo Storage Service
    2. 執行叢集操作對話方塊中,設定相關參數,單擊確定
    3. 確認對話方塊中,單擊確定

訪問OSS bucket

在EMR叢集中訪問同帳號、同地區的OSS bucket時,預設支援免密訪問,即無需配置任何AccessKey即可訪問。如果訪問非以上情況的OSS bucket需要配置相應的AccessKey ID、AccessKey Secret以及Endpoint,針對兩種使用方式相應的配置分別如下:

  • OSS Scheme
    1. 叢集服務 > SmartData配置頁面,單擊smartdata-site頁簽。
    2. 單擊自訂配置,在新增配置項對話方塊中增加以下參數,單擊確定
      參數 參數說明
      fs.jfs.cache.oss-accessKeyId 表示儲存後端OSS的AccessKey ID。
      fs.jfs.cache.oss-accessKeySecret 表示儲存後端OSS的AccessKey Secret。
      fs.jfs.cache.oss-endpoint 表示儲存後端OSS的endpoint。
  • JFS Scheme
    1. 叢集服務 > SmartData配置頁面,單擊bigboot頁簽。
    2. 修改jfs.namespacestest
    3. 單擊自訂配置,在新增配置項對話方塊中增加以下參數,單擊確定
      參數 參數說明
      jfs.namespaces.test.oss.uri 表示test命名空間的後端儲存。樣本:oss://<oss_bucket.endpoint>/<oss_dir>

      endpoint資訊直接配置在oss.uri中。

      jfs.namespaces.test.oss.access.key 表示儲存後端OSS的AccessKey ID。
      jfs.namespaces.test.oss.access.secret 表示儲存後端OSS的AccessKey Secret。

進階配置

Cache模式還包含一些進階配置,用於效能調優,以下配置均為用戶端配置,修改後無需重啟SmartData服務。

  • 服務配置地區的client頁簽,配置以下參數。
    參數 參數說明
    client.oss.upload.threads 每個檔案寫入流的OSS上傳線程數。預設值:4。
    client.oss.upload.max.parallelism 進程層級OSS上傳總並發度上限,防止過多上傳線程造成過大的頻寬壓力以及過大的記憶體消耗。預設值:16。
  • 服務配置地區的smartdata-site頁簽,配置以下參數。
    參數 參數說明
    fs.jfs.cache.copy.simple.max.byte rename過程使用普通copy介面的檔案大小上限(小於閾值的使用普通 copy介面,大於閾值的使用multipart copy介面以提高copy效率)。
    說明 如果確認已開通OSS fast copy功能,參數值設為-1,表示所有大小均使用普通copy介面,從而有效利用fast copy獲得最優的rename效能。
    fs.jfs.cache.write.buffer.size 檔案寫入流的buffer大小,參數值必須為2的冪次,最大為8MB,如果作業同時開啟的寫入流較多導致記憶體使用量過大,可以適當調小此參數。預設值:1048576。
    fs.oss.committer.magic.enabled 啟用Jindo Job Committer,避免Job Committer的rename操作,來提升效能。預設值:true。
    說明 針對Cache模式下,由於OSS這類Object Storage Servicerename操作效能較差的問題,推出了Jindo Job Committer。