全部產品
Search
文件中心

E-MapReduce:JindoCache加速OSS-HDFS透明緩衝

更新時間:Jul 01, 2024

本文以JindoCache支援阿里雲OSS-HDFS透明緩衝加速的使用方式為例,利用叢集本身的儲存資源緩衝OSS-HDFS檔案,以加速作業對OSS-HDFS的訪問。

前提條件

操作步驟

  1. 選擇緩衝策略。

    JindoCache使用CacheSet來管理不同的緩衝策略,您可以根據實際需求為不同的直接選取不同的緩衝策略,並支援一個或多個CacheSet。

    1. 登入叢集,詳情請參見登入叢集

    2. 新增cacheset.xml檔案。

      本文樣本中的cacheset.xml檔案位於/path目錄下。

      <?xml version="1.0" encoding="UTF-8"?>
      <cachesets>
          <cacheset>
              <name>name1</name>
              <path>oss://emr-test/dir1</path>
              <cacheStrategy>DISTRIBUTED</cacheStrategy>
              <metaPolicy>
                  <type>ALWAYS</type>
              </metaPolicy>
              <readPolicy>CACHE_ASIDE</readPolicy>
              <writePolicy>WRITE_AROUND</writePolicy>
          </cacheset>
          <cacheset>
              <name>name2</name>
              <path>oss://emr-test/dir2</path>
              <cacheStrategy>DHT</cacheStrategy>
              <metaPolicy>
                  <type>ONCE</type>
              </metaPolicy>
              <readPolicy>CACHE_ASIDE</readPolicy>
              <writePolicy>WRITE_AROUND</writePolicy>
          </cacheset>
      </cachesets>

      參數

      說明

      樣本

      name

      CacheSet策略的名稱,必須是唯一的,重複的CacheSet名稱會導致覆蓋。

      name1

      path

      需要設定策略的父路徑,其子路徑都會使用該CacheSet的策略。

      oss://emr-test/dir1

      cacheStrategy

      緩衝策略,支援DISTRIBUTED和DHT(Distributed Hash Table)兩種。其中,DHT適用於小檔案情境唯讀加速策略。

      您可以根據需求選擇其中一種適合的策略。

      DISTRIBUTED

      metaPolicy

      中繼資料快取策略,支援ALWAYS和ONCE兩種。

      • ALWAYS:表示不做中繼資料快取,所有中繼資料操作直接從遠端讀取。

      • ONCE:表示進行中繼資料快取,中繼資料除第一次從遠端讀取後續從本地讀取。

      您可以根據需求選擇其中一種適合的策略。

      說明

      如果cacheStrategy為DHT,則metaPolicy必須為ONCE。

      ALWAYS

      readPolicy

      讀檔案策略,當前僅支援CACHE_ASIDE,表示優先從緩衝中讀取。

      CACHE_ASIDE

      writePolicy

      寫檔案策略。支援

      • WRITE_AROUND:表示直接寫入遠端。

      • CACHE_ONLY:表示寫入暫存區。

        說明

        使用CACHE_ONLY策略時必須搭配ONCE使用。

      • WRITE_THROUGH:表示寫入落緩衝。

      WRITE_AROUND

    3. 執行以下命令,重新整理到JindoCache緩衝系統裡。

      jindocache -refreshCacheSet -path /path/cacheset.xml

      執行成功,返回資訊中包含Successfully refresh cacheset !!!。JindoCache更多命令使用,請參見JindoCache CLI使用說明

    4. 您可以使用listCacheSet命令,查看系統中的CacheSet資訊。

      jindocache -listCacheSet
  2. 配置JindoSDK。

    將JindoCache服務OSS-HDFS實作類別配置到Hadoop-Common。在EMR控制台Hadoop-Common服務的配置頁面的core-site.xml頁簽,修改相應的配置項。配置項的具體操作,請參見管理配置項

    參數

    說明

    fs.xengine

    固定值為jindocache。

    如果將該參數值置空,用戶端將不再使用緩衝,而是每次與後端直接進行通訊。

    說明

    此配置為用戶端配置,無需重啟JindoCache服務。

    完成以上配置後,作業訪問OSS-HDFS即可利用緩衝功能。JindoCache儲存加速系統提供了透明緩衝的使用方式,因此作業在訪問OSS-HDFS時無需進行任何修改。一旦作業讀取了OSS-HDFS上的資料,該資料將自動緩衝至JindoCache儲存加速系統中。之後,訪問相同的資料時能夠命中緩衝,從而提高讀取效能。

常見問題

如何配置OSS-HDFS AccessKey?

JindoCache支援免密訪問OSS-HDFS,但如果需跨賬戶訪問OSS-HDFS,則需配置許可權,包括AccessKey ID、AccessKey Secret和Endpoint等相關資訊。

  1. 進入JindoCache服務的common頁簽。

    1. 登入E-MapReduce控制台

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. 叢集管理頁面,單擊目的地組群操作列的叢集服務

    4. 單擊JindoCache服務地區的配置

    5. 單擊common頁簽。

  2. 新增配置並生效配置。

    1. 單擊新增配置項

    2. 新增配置項對話方塊中,新增以下配置項。

      新增配置項和生效配置的具體操作,請參見管理配置項

      說明

      YYY為OSS-HDFS Bucket的名稱。

      參數

      說明

      jindocache.oss.bucket.YYY.accessKeyId

      OSS-HDFS的AccessKey ID。

      jindocache.oss.bucket.YYY.accessKeySecret

      OSS-HDFS的AccessKey Secret。

      jindocache.oss.bucket.YYY.endpoint

      OSS-HDFS的Endpoint。例如,cn-hangzhou.oss-dls.aliyuncs.com。

      jindocache.oss.bucket.YYY.data.lake.storage.enable

      固定值為true。