JindoFSx用戶端P2P可以被視作一種本機快取(LocalCache)。與原有的LocalCache相比,P2P緩衝中的本機資料塊會優先從其他持有該資料的用戶端拉取,只有無法向其他用戶端請求時,才會從STS或遠端讀取。本文為您介紹P2P分布式下載快取的使用方法。
前提條件
已在E-MapReduce上建立EMR-3.42.0及後續版本、EMR-5.6.0及後續版本的叢集,且選擇JINDODATA服務,詳情請參見建立叢集。
操作流程
說明 本文以EMR-3.42.0版本為例介紹。
步驟一:佈建服務端
- 進入JindoData服務的common頁簽。
- 在頂部功能表列處,根據實際情況選擇地區和資源群組。
- 在叢集管理頁面,單擊目的地組群操作列的叢集服務。
- 單擊JindoData服務地區的配置。
- 單擊common頁簽。
- 新增配置。
- 單擊新增配置項。
- 在新增配置項對話方塊中,新增以下配置項。
新增配置項的具體操作,請參見添加配置項。
配置項 參數 描述 服務端配置 jindofsx.p2p.tracker.thread.number P2P協調節點的處理線程數。通常設定為1,如果用戶端數量超過1000可以考慮更大的值。小於1則關閉P2P功能。 jindofsx.p2p.file.prefix 使用P2P下載的首碼列表。當包含多個檔案路徑時,使用半形逗號(,)隔開,檔案路徑只有匹配到其中任一個首碼,才會以P2P方式下載。在應用程式層使用統一掛載路徑進行下載時,此處仍應配置為真實的物件路徑。 例如, oss://bucket1/data-dir1/,oss://bucket2/data-dir2/。用戶端配置 fs.jindofsx.p2p.cache.capacity.limit P2P下載在用戶端側佔用的記憶體緩衝大小限制,單位為位元組,預設為5 GB,最小值為1 GB。 fs.jindofsx.p2p.download.parallelism.per.file P2P下載單個檔案使用的並發數。例如,取值為5。 fs.jindofsx.p2p.download.thread.pool.size P2P下載使用的線程池總大小。例如,取值為5。 - 單擊確定。
- 在彈出的對話方塊中,輸入執行原因,單擊確定。
- 重啟服務。
- 在JindoData服務頁面,選擇。
- 在彈出的對話方塊中,輸入執行原因,單擊確定。
- 在確認對話方塊中,單擊確定。
步驟二:配置JindoSDK
重要 此配置為用戶端配置,無需重啟JindoData服務。
- 進入配置頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
在叢集管理頁面,單擊目的地組群右側操作列的叢集服務。
單擊Hadoop-Common服務地區的配置。
單擊core-site.xml頁簽。
- 修改以下配置項。
新增配置項的具體操作,請參見添加配置項。修改配置項的具體操作,請參見修改配置項。
內容 參數 描述 配置OSS實作類別 fs.AbstractFileSystem.oss.impl 固定值為 com.aliyun.jindodata.oss.OSS。fs.oss.impl 固定值為 com.aliyun.jindodata.oss.JindoOssFileSystem。配置xengine類型 fs.xengine 固定值為 jindofsx。配置JindoFSx Namespace服務地址 fs.jindofsx.namespace.rpc.address 格式為${headerhost}:8101。例如,master-1-1:8101。 說明 如果使用高可用NameSpace,配置詳情請參見高可用JindoFSx Namespace配置和使用。啟用緩衝加速功能 說明 啟用緩衝會利用本地磁碟對訪問的熱資料區塊進行緩衝,預設狀態為禁用,即可以直接存取OSS/OSS-HDFS上的資料。fs.jindofsx.data.cache.enable 資料緩衝開關: - false(預設值):禁用資料緩衝。
- true:啟用資料緩衝。
- 儲存配置。
- 單擊服務配置地區的儲存。
- 在確認修改對話方塊中,輸入執行原因,開啟自動更新配置,單擊確定。
步驟三:使用方法
按上述步驟配置之後,根據jindofsx.p2p.file.prefix配置項,所有匹配的讀請求都會進入P2P功能,無需調用額外的介面。例如,使用Hadoop shell命令將檔案下載到本地,如果檔案的路徑符合首碼匹配,則會自動啟用P2P下載模式。
如果您希望進一步驗證對某個特定檔案的讀請求是否使用了P2P功能,您可以考慮查詢日誌進行驗證。如果您的程式在用戶端列印過INFO層級的日誌,那麼P2P讀將產生下列字樣的記錄:
P2P record for path:如果您找到了這樣的記錄,就可以確定對該檔案的讀請求使用了P2P功能。