天天看點

雲上計算雲下資料: HDFS 緩存加速 | 學習筆記

開發者學堂課程【資料湖 JindoFS + OSS 實操幹貨36講:雲上計算雲下資料: HDFS 緩存加速】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/833/detail/13975

雲上計算雲下資料:HDFS 緩存加速

内容介紹

一、背景介紹

二、功能介紹

三、實觀原理

四、實操示範

傳統的大資料服務,通常是自己部署一套 Hive、Spark、HDFS 線上下的 IDC 機房,現在的雲計算越來越成熟,雲計算可以帶來彈性擴容,運維友善,節省成本等優點。

是以,越來越多的企業開始将他們的大資料平台搬到雲上。

第一步他們先會将 Hive、Spark 等服務搬到雲上,在雲上執行計算,雲下 IDC HDFS 叢集存在着一些曆史資料,是以,HDFS 叢集的資料搬到雲上需要一定的時間,并且有些客戶的存在一些敏感資料,傾向于繼續保留在雲下。

或者說還有一些曆史原因,會儲存在其他雲下叢集上。是以這時候就涉及到跨機房跨雲房通路 HDFS 資料。

雲上通路餘下HDFS資料,存在一些問題:

 叢集之間網絡延遲或者帶寬限制。

 作業突發流量,線下 HDFS 資源相對于雲上來說會比較有限,核心叢集磁盤/網絡被打滿。

為了解決這些問題,就必須引入 HDFS 跨機房服務。

 Jindo Namespace Service  

 Jindo Storage Service  

 Jindo SDK

雲上計算雲下資料: HDFS 緩存加速 | 學習筆記

我們在計算叢集上部署一套 Jindo FS,Jindo FS 具有分布式緩存的能力,它可以解決我們上面提到的兩個問題,第一點,可以利用計算機學閑置資源,比如說雲盤,hdd 或者記憶體進行資料緩存來做加速計算。

第二點,進行流量控制,避免計算機群占用核心叢集過多資源。

雲上計算雲下資料: HDFS 緩存加速 | 學習筆記

這張圖就詳細介紹 Jindo FS 緩存服務的系統架構。

包含三個部分,Namespace 服務儲存檔案的中繼資料和緩存原始資訊的中繼資料。

Jindo SDK 是用戶端,部署 spark 服務上。

Storage 服務負責管理緩存塊的資料,整個流程是:

計算服務通過 Jindo SDK 通路資料,記錄 SDK,從 Namespacs 服務查詢緩存位置資訊,然後向叢集中的 storage 服務,讀取出緩存資料,如果命中緩存直接傳回,如果沒有命中緩存,則從 OSS 讀取資料,并且将緩存寫入到 storage 服務供下次使用。

 部署緩存服務  

1. 下載下傳最新 Release 包 b2smartdata-x.x.x.tar.gz,解壓并部署到叢集所有節點上  

2. 修改配置檔案 conf/bigboot.cfg

[bigboot-storage]  

storage.rpc.port - 6101  

storage.data-dirs =/mnt/disk1/bigboot,/mnt/disk2/bigboot,/mnt/disk3/bigboot,/mnt/disk4/bigboot  

storage.data-dirs.capacities = 527371075584,527371075584,527371075584,527371075584

storage.namespace.rpc.address = emr-header-1:8101  

storage.watermark.high.ratio-0.4 storage.watermark.low.ratio-0.2  

[bigboot-namespace] namespace.rpc.port = 8101  

namespace.meta-dir =/mnt/disk1/bigboot  

3. 修改 sbin/nodes,配置所有storage service的節點清單  

4. 啟動所有服務./sbin/start-service.sh  

詳細文檔可參考:

https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindofs_cache_mode

deploy.md

 部署 Jindo SDK  

1. 安裝 jar 包:下載下傳最新的 jar 包 jindofs-sdk-x.x.xjar,在所有 Hadoop 節點安裝。  

cp./jindofs-sdk-*.jar/share/hadoop/hdfs/lib/jindofs-sdkjar  

2. 将 namespace位址配置到Hadoop的core-site.xml中。  

fs.jfs.namespace.rpc-address 172.16.xx.xx:8101,172.16.xx.xx:8101,172.16.xx.xx:8101

通過 JindoFS 加速通路 HDFS  

我們通過 jfs:///路徑通路,跟直接通路遠端 HDFS 路徑得到一樣 的資料,并且獲得了加速效果

雲上計算雲下資料: HDFS 緩存加速 | 學習筆記

相關資源  

JindoFS SDK

https://github.com/aliyun/alibabacloud-

jindofs/blob/master/docs/indofs _sdk download.md  

JindoFS緩存服務

jindofs/blob/master/docs/indofs cache mode deploy.md

下載下傳最新版本的 SDK 和 smartdate

雲上計算雲下資料: HDFS 緩存加速 | 學習筆記

可以看見 Jindo FS 的詳細使用流程和配置方法,參考 Jindo FS 相容模式部署,程式安裝好後參考使用流程來進行配置部署。

Overview  

Start Time: Sun Jun 27 23:06:53 2021

Status:   Active

Meta Backend:  RocksDB (Standalone) emr-header-1.cluster-234515:8101 [192.168.0.30](Active)

Node:  Live Nodes:[3], Decommission Nodes:[0]  

Version:  3.6.0

Build No:  1d2d462e9844d63d587127504ece7c87b58ad/42

Namespace Info (3)  

Namespace: ifs:/ftest/  

Namespaces:  test

Mode:  BLOCK_MODE

Backend URI:  oss://chengli-sh-test/uyue/C-DBD8BBF30589E5BE  

Summary:  Directory Count:[1], File Count: [0], File Size:[0], Task Count:[0], Computed at 2021-06-27 23:48:03

每個節點都有700GB的記憶體

利用 Jindo FS 加速緩存的效果,可以看到效果還是比較明顯的。