天天看点

Spark 访问 OSS 透明缓存加速 | 学习笔记

开发者学堂课程【数据湖 JindoFS + OSS 实操干货36讲:Spark 访问 OSS 透明缓存加速】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:

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

Spark 访问 OSS 透明缓存加速

内容介绍

一、  JindoFS 缓存简介

二、  Spark 访问 OSS 的缓存加速

三、  缓存效果

1.   Jindo Namespace Service

2.   Jindo Storage Service

3.   Jindo SDK

1.   部署缓存服务

1)   下载最新 Release 包 b2smartdata-x.x.x.tar.gz, 解压并部署到集群所有节点上;

2)   修改配置文件 conf/bigboot.cfg。

代码

[bi gboot-Storage]

storage.rpc.port=6101

storage.datadirs=/mnt/hskl/bigboot,/mnt/disk2/bigboot,/mnt/disk3/bigboot./mnt/disk4/bigboot

storage.data-dirs.capacities -$27371075584,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

5)   详细文档可参考:https//github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindofs_cache _mode_deploy_md

2.   部署 Jindo SDK

1)   安装 jar 包:下载最新的 jar 包 jindofs-sdk-xx.xjar,将 sdk 包安装到 Spark 的classpath下。

cp jindofs-sdk-$(version)jar $SPARK_HOME/jars/

2)   配置JindoFS 实现类:将 JindoFS 实现类配置到 Hadoop 的 core-site.xml中。

fs.AbstractFileSystem.oss.impl

com.aliyun.emr.fs.oss.0SS

fs.oss.impl

欢迎大家来现看直项

com.aliyun.emr.fs.oss.Jindo0ssFileSystem Spark

访问 OSS 透

 3.   配置客户端连接缓存服务

客户端通过环境变量 B2SDK_CONF_DIR 定位并加载配置文件 bigboot.cfg

1)   设置环境变量指定配置目录

export B2SDK_CONF_DIR=/path/to/sdk/conf

2)   在配置目录下添加bigboot.cfg配置文件

client.storage.rpc.port = 6101

client.namespace.rpc.address=:8101

jfs.cache.data-cache.enable = true

[bigboot-client]

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

4.   Spark 访问 OSS 透明缓存加速

1)   完成以上配置之后,启动的 Spark 任务即可访问 OSS;

2)   任务读取 OSS 上的数据后,会自动缓存到 JindoFS 缓存系统中,后续访问相同的数据就能够命中缓存。

l  缓存性能对比

TPC-DS,选择8个具有 IO 相对较高的 SQL 查询进行测试

Spark 访问 OSS 透明缓存加速 | 学习笔记

详见《JindoFS 缓存系统(Cache模式)性能比较》

https://qithub.com/aliyun/alibabacloudjindofs/blob/master/docs/comparisons/jindofs_cache_vs_no_cache.md