全部產品
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. 進入namespace服務配置。
    1. 單擊配置頁簽。
    2. 單擊namespace
      namespace
  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_of_file>的形式訪問JindoFS上的檔案。

啟用緩衝

啟用緩衝會利用本地磁碟對訪問的熱資料區塊進行緩衝,預設狀態為禁用,即所有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. 單擊確定
    4. 確認對話方塊中,單擊確定

訪問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。
  • OSS Scheme
    1. JFS Scheme
      1. 叢集服務 > SmartData配置頁面,單擊namespace頁簽。

    進階配置

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

    • 服務配置地區的client頁簽,配置以下參數。
      參數參數說明
      client.oss.upload.threads每個檔案寫入流的OSS上傳線程數。預設值:4。
      client.oss.upload.max.parallelism進程層級OSS上傳總並發度上限,防止過多上傳線程造成過大的頻寬壓力以及過大的記憶體消耗。預設值:16。
    • 服務配置地區的smartdata-site頁簽,配置以下參數。
      參數參數說明
      fs.jfs.cache.copy.simple.max.byterename過程使用普通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。