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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 快速学习 Spark 对 OSS 上的 ORC 数据进行查询加速。

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

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


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

 

内容介绍

一、ORC 简介

二、JIndoFS 列存加速

三、性能对比

四、演示


一、ORC 简介

1ORC: Hadoop生态的列存系统

l  来自 Hive 的列式存储

l  支持列裁剪

l  包含类型信息,自描述

l  支持 Encoding/ 压缩

2Spark 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 tablenameUSING ORC;

l  使用 Apache ORC

 

二、JIndoFS 列存加速

1JindoFS 列存加速:痛点

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

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

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

l  计算越快越好

2JindoFS 列存加速

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搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
50 3
|
4月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
3月前
|
存储 分布式计算 Java
|
3月前
|
分布式计算 监控 大数据
如何处理 Spark 中的倾斜数据?
【8月更文挑战第13天】
250 4
|
3月前
|
存储 缓存 分布式计算
|
3月前
|
SQL 存储 分布式计算
|
3月前
|
分布式计算 Apache 数据安全/隐私保护
流计算引擎数据问题之在 Spark Structured Streaming 中水印计算和使用如何解决
流计算引擎数据问题之在 Spark Structured Streaming 中水印计算和使用如何解决
51 1
|
3月前
|
存储 安全 大数据
对象存储的意义:探索数据新纪元的关键基石
在信息爆炸时代,数据成为核心资产,而高效安全的数据存储至关重要。对象存储作为一种新兴技术,起源于20世纪90年代,旨在解决传统文件系统的局限性。随着云计算和大数据技术的发展,它已成为关键技术之一。对象存储具备高可扩展性、高可靠性、低成本、易于管理和多协议支持等优点。它支撑大数据发展、推动云计算繁荣、助力企业数字化转型并保障数据安全。未来,对象存储将进一步提升性能,实现智能化管理,并与边缘计算融合,获得政策支持,成为数据新时代的关键基石。
171 3
|
4月前
|
SQL 分布式计算 数据处理
MaxCompute操作报错合集之使用Spark查询时函数找不到的原因是什么
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
4月前
|
DataWorks 安全 定位技术
DataWorks产品使用合集之如何同步OSS中的Parquet数据,并解析里面的数组成多个字段
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
下一篇
无影云桌面