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

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储OSS,敏感数据保护2.0 200GB 1年
简介: 快速学习Spark 访问 OSS 透明缓存加速。

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

课程地址:https://developer.aliyun.com/learning/course/833/detail/13972


Spark 访问 OSS 透明缓存加速

 

内容介绍

一、  JindoFS 缓存简介

二、  Spark 访问 OSS 的缓存加速

三、  缓存效果

 

一、  JindoFS 缓存简介

1.   Jindo Namespace Service

2.   Jindo Storage Service

3.   Jindo SDK

 

二、  Spark 访问 OSS 的缓存加速

1.   部署缓存服务

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

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

代码

[bi gboot-Storage]

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

storage.data-dirs.capacities -$27371075584,527371075584,527371075584527371075584

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.storage.rpc.port = 6101

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

jfs.cache.data-cache.enable = true

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

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

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

 

三、  缓存效果

l  缓存性能对比

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

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

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

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
4月前
|
存储 缓存 网络协议
如何使用CDN加速访问OSS存储的图片资源?
通过阿里云CDN加速OSS上的图片和视频资源,可显著提升访问速度、降低带宽成本。CDN将静态资源缓存至离用户最近的节点,减少加载时间,并提供图像处理、缓存优化等功能,提升用户体验。同时,CDN还支持访问数据分析,助力运营决策。本文详解如何通过CDN控制台配置OSS加速,包括添加域名、设置CNAME、配置缓存策略等步骤,帮助您快速实现资源加速。
|
7月前
|
存储 人工智能 Kubernetes
AI 场景深度优化!K8s 集群 OSSFS 2.0 存储卷全面升级,高效访问 OSS 数据
阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,是用户在云上存储的高性价比选择…
|
8月前
|
存储 Kubernetes 对象存储
StrmVol存储卷:如何解锁K8s对象存储海量小文件访问性能新高度?
如何提升海量文件的数据读取速率,对于AI训练集管理、量化回测、时序日志分析等场景尤为重要。阿里云容器服务(ACK))支持StrmVol类型存储卷,基于底层虚拟块设备及内核态文件系统,显著降低海量小文件访问延迟。
|
8月前
|
存储 Kubernetes 对象存储
StrmVol 存储卷:解锁 K8s 对象存储海量小文件访问性能新高度
本文介绍了阿里云容器服务(ACK)支持的StrmVol存储卷方案,旨在解决Kubernetes环境中海量小文件访问性能瓶颈问题。通过虚拟块设备与内核态文件系统(如EROFS)结合,StrmVol显著降低了小文件访问延迟,适用于AI训练集加载、时序日志分析等场景。其核心优化包括内存预取加速、减少I/O等待、内核态直接读取避免用户态切换开销,以及轻量索引快速初始化。示例中展示了基于Argo Workflows的工作流任务,模拟分布式图像数据集加载,测试结果显示平均处理时间为21秒。StrmVol适合只读场景且OSS端数据无需频繁更新的情况,详细使用方法可参考官方文档。
808 144
|
7月前
|
存储 人工智能 测试技术
AI 场景深度优化!K8s 集群 OSSFS 2.0 存储卷全面升级,高效访问 OSS 数据
OSSFS 2.0通过轻量化协议设计、协程化技术及FUSE3低级API重构,实现大文件顺序读写与小文件高并发加载的显著提升,在实际测试中表现出高达数十倍的吞吐量增长。适用于机器学习训练、推理等对高带宽低延迟要求严苛的场景,同时支持静态和动态挂载方式,方便用户在ACK集群中部署使用。
732 34
|
10月前
|
存储 缓存 分布式计算
【赵渝强老师】Spark RDD的缓存机制
Spark RDD通过`persist`或`cache`方法可将计算结果缓存,但并非立即生效,而是在触发action时才缓存到内存中供重用。`cache`方法实际调用了`persist(StorageLevel.MEMORY_ONLY)`。RDD缓存可能因内存不足被删除,建议结合检查点机制保证容错。示例中,读取大文件并多次调用`count`,使用缓存后执行效率显著提升,最后一次计算仅耗时98ms。
289 0
【赵渝强老师】Spark RDD的缓存机制
|
12月前
|
存储 应用服务中间件 开发工具
对象存储OSS-Python设置代理访问请求
通过 Python SDK 配置 nginx 代理地址请求阿里云 OSS 存储桶服务。示例代码展示了如何使用 RAM 账号进行身份验证,并通过代理下载指定对象到本地文件。
495 15
|
存储 缓存 分布式计算
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
174 4
|
7月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
2月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。