雲計算

數據湖實操講解【JindoFS 緩存加速】第十二講:Spark 訪問 OSS 透明緩存加速

本期導讀 :【JindoFS 緩存加速】第十二講

主題:Spark 訪問 OSS 透明緩存加速

講師:辰山,阿里巴巴計算平臺事業部 EMR 技術專家

內容框架:

  • JIndoFS 緩存模式簡介
  • Spark 訪問 OSS 的緩存加速
  • 緩存效果
  • 實操演示

直播回放鏈接:(12講)

https://developer.aliyun.com/live/246923

一、JindoFS 緩存模式簡介

JindoFS緩存模式架構圖:

image.png

架構介紹:

  • Jindo Namespace Service:JindoFS 元數據管理以及 Storage 服務的管理
  • Jindo Storage Service:用戶數據的管理包含本地數據的管理和OSS上數據的管理
  • Jindo SDK 客戶端:所有上層計算引擎通過JindoFS SDK提供的客戶端訪問JindoFS文件系統,從而實現對後端存儲實現緩存加速

二、Spark 訪問 OSS 的緩存加速

部署緩存服務

  • 下載最新 Releaseb2smartdata-x.x.x.tar.gz,解壓並部署到集群所有節點上
  • 修改配置文件conf/bigboot.cfg

  image.png

  • 修改 sbin/nodes,配置所有storage service的節點列表
  • 啟動所有服務 ./sbin/start-service.sh


參考網址:

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

部署JIndo SDK

  • 安裝 jar包:下載最新的jar包 jindofs-sdk-x.x.x.jar,將sdk包安裝到Spark的classpath下。

cpjindofs-sdk-${version}.jar $SPARK_HOME/jars/

  • 配置 JindoFS 實現類:將JindoFS 實現類配置到Hadoop的core-site.xml中

image.png

配置OSS Access Keyimage.png

  • 將OSS的Access Key、Access Key Secret、Endpoint等預先配置在Hadoop的core-site.xml中。

image.png

配置客戶端連接緩存服務

客戶端通過環境變量 B2SDK_CONF_DIR 定位並加載配置文件 bigboot.cfg

  • 設置環境變量指定配置目錄

export B2SDK_CONF_DIR= /path/to/sdk/conf

  • 在配置目錄下添加bigboot.cfg配置文件
    client.storage.rpc.port = 6101

client.namespace.rpc.address = <NAMESPACE_ADDRESS>:8101

jfs.cache.data-cache.enable = true

image.png完成以上配置之後,啟動的 Spark 任務即可訪問OSS

任務讀取OSS上的數據後,會自動緩存到JindoFS緩存系統中,後續訪問相同的數據就能夠命中緩存

三、緩存效果

緩存性能對比:

基於TPC-DS對緩存模式進行性能測評;

選擇8個具有IO相對較高的SQL查詢進行測試,

結果如下:

image.png

圖解:

藍色為啟用緩存執行時間;橙色為關閉緩存,用純粹SDK方式訪問OSS所用時

可見執行時間得到近50%的提升,性能提升效果明顯


詳見:《JindoFS 緩存系統(Cache 模式)性能比較》

參考網址:
https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/comparisons/jindofs_cache_vs_no_cache.md

四、實操演示

點擊回放鏈接,直接觀看第12講視頻回放,獲取講師實例講解:

https://developer.aliyun.com/live/246923



Github鏈接:

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

不錯過每次直播信息、探討更多數據湖 JindoFS+OSS 相關技術問題,歡迎掃碼加入釘釘交流群!

image.png

Leave a Reply

Your email address will not be published. Required fields are marked *