本文以JindoCache支持阿里云OSS透明緩存加速的使用方式為例,利用集群本身的存儲資源緩存OSS文件,以加速作業對OSS的訪問。
前提條件
使用限制
文件以對象的形式存儲在OSS上。
操作步驟
JindoCache使用CacheSet來管理不同的緩存策略,您可以根據實際需求為不同的路徑選擇不同的緩存策略。JindoCache支持一個或多個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實現類配置到Hadoop-Common。在EMR控制臺Hadoop-Common服務的配置頁面的core-site.xml頁簽,修改相應的配置項。配置項的具體操作,請參見管理配置項。
參數
說明
fs.xengine
固定值為jindocache。
如果將該參數值置空,客戶端將不再使用緩存,而是每次與后端直接進行通信。
說明此配置為客戶端配置,無需重啟JindoCache服務。
完成以上配置后,作業訪問OSS即可利用緩存功能。JindoCache存儲加速系統提供了透明緩存的使用方式,因此作業在訪問OSS時無需進行任何修改。一旦作業讀取了OSS上的數據,該數據將自動緩存至JindoCache存儲加速系統中。之后,訪問相同的數據時能夠命中緩存,從而提高讀取性能。
常見問題
如何配置OSS AccessKey?
JindoCache支持免密訪問OSS,但如果需跨賬戶訪問OSS,則需配置權限,包括AccessKey ID、AccessKey Secret和Endpoint等相關信息。
進入JindoCache服務的common頁簽。
在頂部菜單欄處,根據實際情況選擇地域和資源組。
在集群管理頁面,單擊目標集群操作列的集群服務。
單擊JindoCache服務區域的配置。
單擊common頁簽。
新增配置并生效配置。
單擊新增配置項。
在新增配置項對話框中,新增以下配置項。
新增配置項和生效配置的具體操作,請參見管理配置項。
說明XXX
為OSS Bucket的名稱。參數
說明
jindocache.oss.bucket.XXX.accessKeyId
OSS的AccessKey ID。
jindocache.oss.bucket.XXX.accessKeySecret
OSS的AccessKey Secret。例如,oss-cn-hangzhou-internal.aliyuncs.com。
jindocache.oss.bucket.XXX.endpoint
OSS的Endpoint。