Spark 对 OSS 上的 ORC 数据进行查询加速 | 学习笔记

简介: 快速学习 Spark 对 OSS 上的 ORC 数据进行查询加速。

开发者学堂课程【数据湖 JindoFS + OSS 实操干货36讲:Spark 对 OSS 上的 ORC 数据进行查询加速 】学习笔记,与课程紧密联系,让用户快速学习知识。

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


Spark 对 OSS 上的 ORC 数据进行查询加速

 

内容介绍

一、ORC 简介

二、JIndoFS 列存加速

三、性能对比

四、演示


一、ORC 简介

(1)ORC: Hadoop生态的列存系统

l  来自 Hive 的列式存储

l  支持列裁剪

l  包含类型信息,自描述

l  支持 Encoding/ 压缩

(2)Spark 与 ORC

l  Spark Hive 表

l   CREATE TABLE tablename …STORED AS ORC;

l   使用Hive ORC

l   Spark.sql.hive.convertMetastoreOrc

l  Spark Datasource 表

l  CREATE TABLE tablename…USING ORC;

l  使用 Apache ORC

 

二、JIndoFS 列存加速

(1)JindoFS 列存加速:痛点

l  对象存储水平扩展能力强,但请求延时高

l  本地盘/云盘带宽有限,中间数据越少越好

l  IO 需要与 shuffle 数据竞争网络咨源

l  计算越快越好

(2)JindoFS 列存加速

l  JindoTable Native Engine

l  高速读取

l  查询计划下推(高速计算)

l  表/分区/列级别的数据缓存,消除带宽瓶颈和性能波动

l  支持 JindoFS/OSS

l  支持 ORC/Parquet 格式

l  高效的预计算(规划)

l  可插拔,兼容开源

(3)用法

l  命令行参数

l  --conf spark.sql.extensions=com.aliyun.emr.sql.JindoTableExtension

l  配置到 spark- defaults

l   spark.sql.extensions

com.aliyun.emr.sql.Jindo TableExtension

l  Spark Hive 表需要确保

l  spark.sql.hive.convertMetastoreOrc = true

l  EMR-3.35/4.9/5.2 之后的版本

(4)加速原理

l  Native Engine 直接把数据排在内存中供上层引擎使用

l  Spark 通过 Unsafe 直接访问数据,无需拷贝数据

l  Native Engine 异步读取文件

l  数据读取不等待上层引擎消费,性能更高

l  高并发

l  文件级别并发

l  列级别并发

l  Native 实现算子

l  相比J ava 性能更优

(5)加速架构

l   一套 Native Engine 支持不同引擎

l  AliORC 提供 ORC 支持

l  Native Engine 运行在 executor/PrestoWorker 中(客户端)

三、性能对比

1.Spark 性能对比——配置

1.png2. Spark 性能对比——结果:端到端总时间缩短23.6%。

 

四、演示

1.演示

l  配置 Spark

l  读取鸢尾花数据集以 ORC 格式写入 OSS 路径

l  从OSS查询鸢尾花数据集

2.相关资料

l  Jindodata相 关文档:

https://qithub.com/aliyun/alibabacloud-indodata

l  计算加速使用文档:

https://help. aliyun.com/document _detail/213329.html

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
存储 人工智能 Kubernetes
AI 场景深度优化!K8s 集群 OSSFS 2.0 存储卷全面升级,高效访问 OSS 数据
阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,是用户在云上存储的高性价比选择…
|
存储 监控 调度
阿里云对象存储OSS之间进行数据转移教程
讲解如何在阿里云对象存储OSS之间进行跨账号、跨地域、以及同地域内的数据迁移,包括数据迁移之前的准备工作和实施数据迁移以及一些后续操作
|
存储 人工智能 测试技术
AI 场景深度优化!K8s 集群 OSSFS 2.0 存储卷全面升级,高效访问 OSS 数据
OSSFS 2.0通过轻量化协议设计、协程化技术及FUSE3低级API重构,实现大文件顺序读写与小文件高并发加载的显著提升,在实际测试中表现出高达数十倍的吞吐量增长。适用于机器学习训练、推理等对高带宽低延迟要求严苛的场景,同时支持静态和动态挂载方式,方便用户在ACK集群中部署使用。
1948 34
|
存储 安全 数据管理
服务器违规资源被删,数据定时备份OSS 云存储才是 “救命稻草”
在数字化时代,数据已成为企业与个人的核心资产。然而,服务器违规、硬件故障等问题频发,导致数据丢失、业务中断,甚至造成不可挽回的损失。为保障数据安全与业务连续性,定时备份至关重要。阿里云国际站OSS提供高效、可靠的云存储解决方案,支持自动定时备份,帮助用户轻松应对数据风险。本文详解OSS备份操作步骤与注意事项,助你为数据穿上“防护甲”,实现安全无忧存储。
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
1395 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
958 79
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
584 0
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
464 0
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
600 0