18 天前 / 数栈DTinsightu580540
导读: Spark SQL 有 RBO 和 CBO 两种优化方式,数栈为什么选择 CBO 作为优化方式?又是在数栈中怎么落地的?未来优化方式选择是什么,本期内容带你了解数栈在 Spark SQL 优化方式上的探索。 你能看到 Spark SQLCBO 选型背景 Spark SQLCBO 实现原理 数栈在 Spark SQLCBO 上的探索 作者 / 修竹 编辑 / 花夏 Spark SQL CBO 选型背景 Spark SQL 的优化器有两种优化方式:一种是基于规则的优化方式 (Rule-Based Optimizer,简称为 RBO);另一种是基于代价的优化方式 (Cost-Based Optimizer,简称为 CBO)。
25 天前 / 逗逗
▲点击上方“小林玩大数据”关注公众号 回复“0”获取大数据面试突击资料 点击上方卡片进入小林玩大数据主页 然后点击右上角“设为星标” 比别人更快接收好文章 1. --sparksubmit --num-executors 该参数主要用于设置该应用总共需要多少 executors 来执行,Driver 在向集群资源管理器申请资源时需要根据此参数决定分配的 Executor 个数,并尽量满足所需。 在不带的情况下只会分配少量 Executor。这个值得设置还是要看分配的队列的资源情况,太少了无法充分利用集群资源,太多了则难以分配需要的资源。
62 天前 / sjf0115
背景因为业务需要,雪球数据团队基于 HDP 3.1.5(Hadoop 3.1.1+Hive 3.1.0+Tez 0.9.1)搭建了一个新的集群,HDP 3.1.5 默认使用 Hive3 on Tez 作为 ETL 计算引擎,但是在使用 Hive3 on Tez 中,我们遇到很多问题: 部分 SQL 执行失败,需要关闭掉容器复用或者向量化执行。部分 SQL 开启 CBO 优化之后的执行计划错误,导致结果出错,需要关闭 CBO 优化。还有一些时区不准、GroupBy with Limit 不准确等已经在新版本 fix 的 bug。极其个别复杂多级关联的 SQL,计算结果不准确,很难发现,需要通过修改 SQL 来解决。这些问题对数仓开发来说非常致命。
77 天前 / sjf0115
点击上方蓝字关注我们! 在字节跳动内部,我们实现了一套全新的云原生 Spark History 服务—— UIService,相比开源的 SHS,UIService 存储占用和访问延迟均降低 90% 以上,目前 UIService 服务已经在字节跳动内部广泛使用,并且作为火山引擎湖仓一体分析服务 LAS(LakeHouse Analytics Service)的默认服务。业务背景 开源 Spark History Server 架构 为了能够更好理解本次重构的背景和意义,首先对原生 Spark History Server 原理做个简单的介绍。 开源 Spark History Server流程图 Spark History 建立在 Spark 事件(Spark Event)体系之上。
92 天前 / 逗逗
Spark0 前言大家好,我是小林。 今天是《大数据面试突击系列之 Spark》的第七篇,之前小林已经聊了,一个应用程序是如何将一个 application 转换为物理执行计划的,也介绍了是如何调度 task 的。 但是,还没有和大家聊清楚 Stage 与 Stage 之间是如何传递数据的。其实这个数据传递的过程就叫 Shuffle。 这篇主要和大家讲讲 Spark 的 shuffle 机制,为什么会有 shuffle ?shuffle 到底要解决什么问题? Spark 系列往期文章: 第一篇:RDD 编程模型:延迟计算是怎么回事? 第二篇:Spark 数据依赖图是啥? 第三篇:Spark 进程模型与分布式部署:什么是分布式...
103 天前 / 逗逗
点击上方卡片进入五分钟学大数据主页 然后点击右上角 “设为星标” 比别人更快接收好文章 在 MapReduce 框架中, Shuffle 阶段是连接 Map 与 Reduce 之间的桥梁, Map 阶段通过 Shuffle 过程将数据输出到 Reduce 阶段中。由于 Shuffle 涉及磁盘的读写和网络 I/O,因此 Shuffle 性能的高低直接影响整个程序的性能。Spark 也有 Map 阶段和 Reduce 阶段,因此也会出现 Shuffle 。 Spark ShuffleSpark Shuffle 分为两种:一种是基于 Hash 的 Shuffle;另一种是基于 Sort 的 Shuffle。
119 天前 / sjf0115
本文我们将花点时间来回顾一下 Databricks 和 Apache Spark 在流数据处理方面所取得的巨大进步!2021 年,工程团队和开源贡献者在以下三个目标取得了一些进展: 降低延迟并改进有状态流处理;提高 Databricks 和 Spark Structured Streaming 工作负载的可观测性;改进资源分配和可伸缩性。 下面我们来简单地看下这些目标。 目标一:降低延迟并改进有状态流处理有两个新的关键特性专门用于降低有状态操作的延迟,以及对有状态 APIs 的改进。第一种是针对大型有状态操作的异步检查点(asynchronous checkpointing),它改进了传统的同步和延迟更高的设计。
120 天前 / sjf0115
前言 Apache Spark 是目前应用最广泛的大数据分析计算工具之一。它擅长于批处理和实时流处理,并支持机器学习、人工智能、自然语言处理和数据分析应用。随着 Spark 越来越受欢迎,使用量越来越大,狭义上的 Hadoop (MR) 技术栈正在收缩。另外,普遍的观点和实践经验证明,除了大数据相关的工作负载,Hadoop (YARN) 不具备相应的灵活性去跟更广泛的企业技术栈融合与集成。比如去承载一些在线业务,而这正是 Kubernetes(K8s) 所擅长的领域。事实上,Kubernetes 的出现为 Spark 的改进打开了一个新世界的大门,创造了更多机遇。
167 天前 / 逗逗
前几天有好几个朋友问我关于 spark 作业分配资源的问题:即在提交作业的时候,不知道该分配多少资源比较好?我的回答是靠经验,仔细想想靠经验这等于不是没说吗,总有一些方法论或者思路的吧。所以就有了这篇文章,下笔的时候着实是不知道该怎么写,所以在网上搜索了一下,看看大佬们是怎么回答的。赶巧了不是,还真发现 3 年前就有人问过这个问题。 看了下评论,我感觉我能看懂,但不知道朋友们是否能看懂,所以我想还是要再详细啰嗦一下吧 首先呢,spark 官网给我们提供了一些硬件层面的建议...
169 天前 / sjf0115
作者 | 吴磊策划 | 陈思专题介绍 2009 年,Spark 诞生于加州大学伯克利分校的 AMP 实验室(the Algorithms, Machines and People lab),并于 2010 年开源。2013 年,Spark 捐献给阿帕奇软件基金会(Apache Software Foundation),并于 2014 年成为 Apache 顶级项目。如今,十年光景已过,Spark 成为了大大小小企业与研究机构的常用工具之一,依旧深受不少开发人员的喜爱。如果你是初入江湖且希望了解、学习 Spark 的“小虾米”,那么 InfoQ 与 FreeWheel 技术专家吴磊合作的专题系列文章——《深入浅出 Spark:原理详解与开发实践》一定适合你!本文系...
171 天前 / sjf0115
作者 | 吴磊策划 | 陈思专题介绍:2009 年,Spark 诞生于加州大学伯克利分校的 AMP 实验室(the Algorithms, Machines and People lab),并于 2010 年开源。2013 年,Spark 捐献给阿帕奇软件基金会(Apache Software Foundation),并于 2014 年成为 Apache 顶级项目。如今,十年光景已过,Spark 成为了大大小小企业与研究机构的常用工具之一,依旧深受不少开发人员的喜爱。如果你是初入江湖且希望了解、学习 Spark 的“小虾米”,那么 InfoQ 与 FreeWheel 技术专家吴磊合作的专题系列文章——《深入浅出 Spark:原理详解与开发实践》一定适合你!本文系专...
221 天前 / sjf0115
概述 Presto 最初设计是对数据仓库中的数据运行交互式查询,但现在它已经发展成为一个位于开放数据湖分析之上的统一 SQL 引擎,用于交互式和批处理工作负载,数据湖上的流行工作负载包括: 报告和仪表盘:这包括为内部和外部开发人员提供自定义报告以获取业务洞察力,以及许多使用 Presto 进行交互式 A/B 测试分析的组织。这个用例的典型特征是要求低延迟。它在非常高的 QPS 下需要数十到数百毫秒,毫不奇怪,这个场景几乎完全使用 Presto,而这正是 Presto 的设计目的。
225 天前 / sjf0115
作者|张兴超 编辑|林颖 供稿|ADI Carmel Team 本文共 3884 字,预计阅读时间 10 分钟 更多干货请关注“eBay 技术荟”公众号 导 读 Carmel 是 eBay 内部基于 Apache Spark 打造的一款 SQL-on-Hadoop 查询引擎。通过对 Apache Spark 的改进,我们为用户提供了一套高可用高性能的服务,以满足 eBay 内部大量分析型的查询需求(如今单日查询量已超过 30 万)。 在生产中,我们发现有很多包含非等值连接的查询。因为 BroadcastNestedLoop 的实现,这些查询会产生效率问题,而变得非常耗时。
249 天前 / sjf0115
引言:把基于 mapreduce 的离线 hiveSQL 任务迁移到 sparkSQL,不但能大幅缩短任务运行时间,还能节省不少计算资源。最近我们也把组内 2000 左右的 hivesql 任务迁移到了 sparkSQL,这里做个简单的记录和分享,本文偏重于具体条件下的方案选择。 迁移背景 SQL 任务运行慢 Hive SQL 处理任务虽然较为稳定,但是其时效性已经达瓶颈,无法再进一步提升,同一个 SQL,Hive 比 Spark 执行的时间更长。 Spark SQL 的发展远超 HSQL 随着 Spark 以及其社区的不断发展,Spark SQL 本身技术也在不断成熟,Spark 在技术架构和性能上都展示出 Hive 无法比拟的优势。
257 天前 / 比百事还可乐
▼ 关注「Flink 中文社区」,获取更多技术干货▼摘要:本由社区志愿者苗文婷整理,内容来源 LinkedIn 大数据高级开发工程师张晨娅在 Flink Forward Asia 2020 分享的《从 Spark 做批处理到 Flink 做流批一体》,主要内容为: 为什么要做流批一体?当前行业已有的解决方案和现状,优势和劣势探索生产实践场景的经验 Shuflle Service 在 Spark 和 Flink 上的对比,以及 Flink 社区后面可以考虑做的工作总结 Tips:FFA 2021 重磅开启,点击「阅读原文」即可报名~ GitHub 地址欢迎大家给Flink点赞送 star~ 一、为什么要做流批一体 做流批一体到底有哪些益处...