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,搭建一个在线教育视频课程分享网站。
相关文章
|
8月前
|
canal 分布式计算 关系型数据库
大数据Spark Streaming实时处理Canal同步binlog数据
大数据Spark Streaming实时处理Canal同步binlog数据
122 0
|
3月前
|
SQL 分布式计算 API
Spark学习------SparkSQL(概述、编程、数据的加载和保存)
Spark学习------SparkSQL(概述、编程、数据的加载和保存)
|
5月前
|
分布式计算 大数据 Apache
【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)
【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)
69 0
|
2天前
|
分布式计算 Java 关系型数据库
|
7天前
|
SQL 分布式计算 数据可视化
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
|
17天前
|
新零售 分布式计算 数据可视化
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
|
2月前
|
SQL 分布式计算 Java
Spark学习---SparkSQL(概述、编程、数据的加载和保存、自定义UDFA、项目实战)
Spark学习---SparkSQL(概述、编程、数据的加载和保存、自定义UDFA、项目实战)
139 1
|
2月前
|
存储 分布式计算 API
adb spark的lakehouse api访问内表数据,还支持算子下推吗
【2月更文挑战第21天】adb spark的lakehouse api访问内表数据,还支持算子下推吗
108 2
|
7月前
|
SQL 分布式计算 算法
聊聊 Spark 作业的 commit 提交机制 - Spark并发更新ORC表失败的问题原因与解决方法
聊聊 Spark 作业的 commit 提交机制 - Spark并发更新ORC表失败的问题原因与解决方法
聊聊 Spark 作业的 commit 提交机制 - Spark并发更新ORC表失败的问题原因与解决方法
|
3月前
|
存储 监控 BI
OSS日志查询
实时日志查询功能将OSS与日志服务SLS相结合,允许您在OSS控制台直接查询OSS的访问日志
36 1