本文以JindoCache支援阿里雲OSS-HDFS透明緩衝加速的使用方式為例,利用叢集本身的儲存資源緩衝OSS-HDFS檔案,以加速作業對OSS-HDFS的訪問。
前提條件
已建立叢集,且選擇了JindoCache服務,建立叢集操作請參見建立叢集。
已開通並授權訪問OSS-HDFS服務,詳情請參見開通並授權訪問OSS-HDFS服務。
操作步驟
選擇緩衝策略。
JindoCache使用CacheSet來管理不同的緩衝策略,您可以根據實際需求為不同的直接選取不同的緩衝策略,並支援一個或多個CacheSet。
登入叢集,詳情請參見登入叢集。
新增
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
執行以下命令,重新整理到JindoCache緩衝系統裡。
jindocache -refreshCacheSet -path /path/cacheset.xml執行成功,返回資訊中包含
Successfully refresh cacheset !!!。JindoCache更多命令使用,請參見JindoCache CLI使用說明。您可以使用listCacheSet命令,查看系統中的CacheSet資訊。
jindocache -listCacheSet
配置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等相關資訊。
進入JindoCache服務的common頁簽。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
在叢集管理頁面,單擊目的地組群操作列的叢集服務。
單擊JindoCache服務地區的配置。
單擊common頁簽。
新增配置並生效配置。
單擊新增配置項。
在新增配置項對話方塊中,新增以下配置項。
新增配置項和生效配置的具體操作,請參見管理配置項。
說明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。