Presto之Driver个数
一. 前言
在Presto的Stage Performace中,每个Operator中都会有Driver个数的显示,如下图所示。本文主要介绍Presto中是如何决定Driver的个数的。

二. Driver个数
在Presto中,一个pipeline中启动多少个Driver,是由此Pipeline处理的Split个数决定的。代码实现的流程如下所示:
blocked = split.process();DriverSplitRunner::processFordriverFactory.createDriver
因此Presto在处理每个Split的时候,都会创建一个Driver来处理该Split,Driver中包含处理该Split的所有Operator。

既然Operator的个数决定了Driver的个数,那么Operator的个数又是怎么决定的呢?
在Presto中,Operator的个数在TableScan中和非TableScan处理不太一样,如下将详细说明两者的区别。
TableScanOperator的Split个数决定流程:
TableScan的Split格式是有Connector的ConnectorSplitManager::getSplits接口决定的,在SourcePartitionedScheduler中,会通过调用ConnectorSplitManager的split获取所有的split进行调度,整体的代码执行流程:
SourcePartitionedSchedulerschedulescheduleGroup.nextSplitBatchFuture = splitSource.getNextBatchConnectorAwareSplitSource::getNextBatchsource.getNextBatch ==> 调用到connector的getSplits接口获取所有的splits,因此connector返回的split的个数就是tablescan的split的个数
非TableScan算子的Driver个数则是由DriverInstanceCount决定的,在SqlTaskExecution::scheduleDriversForTaskLifeCycle中根据DriverInstanceCount的个数决定创建多少个Driver来处理数据:

DriverInstanceCount的设置值不同的Operator设置的不一样,比如ExchangeOperator的个数是由task_concurrency参数决定的,主要的代码实现流程为:
LocalExecutionPlanner::createRemoteSource中决定DriverInstanceCount:

又如TableWrite的个数则是由task_writer_count参数决定的:

三 . Driver个数的意义
更多的Driver意味着更多的并发去同时处理数据,往往也意味着更好的性能。
相关文章:
Presto之Driver个数
一. 前言 在Presto的Stage Performace中,每个Operator中都会有Driver个数的显示,如下图所示。本文主要介绍Presto中是如何决定Driver的个数的。 二. Driver个数 在Presto中,一个pipeline中启动多少个Driver,是由此Pipeline处理的S…...
R语言响应面(RSM)、线性模型lm分析生产过程影响因素可视化
全文链接:https://tecdat.cn/?p33499 响应面(Response Surface Methodology,RSM)分析是一种常用的统计方法,用于研究和优化生产过程中的影响因素。通过建立数学模型来描述因素与响应之间的关系,RSM可以帮助…...
剑指Offer --- 字符串篇
剑指Offer — 字符串篇 — 剑指的题解K神已经写的已经非常详细了,并且Github上开源的电子书目前热度也非常高,这个12天12个模块系列就当作自己的秋招刷题汇总了,欢迎大家交流。 剑指 Offer 05. 替换空格 思路 **(线性扫描) ** O(n) 这个…...
7.elasticsearch同步工具-logstah
1.logstah Logstash 是一个用于数据处理和转换的开源工具,它可以将来自不同源头的数据收集、转换、过滤,并将其发送到不同的目标。Logstash 是 ELK(Elasticsearch、Logstash 和 Kibana)技术栈的一部分,通常与 Elastics…...
Redis之stream类型解读
目录 基本介绍 数据结构 消息 消费组 消费者 基本使用命令 概述 xadd 命令 xtrim 命令 xdel 命令 xlen 命令 xrange 命令 xread 命令 xgroup 命令 xreadgroup 命令 xack 命令 基本介绍 Redis stream(流)是一种数据结构,其…...
C++ 网络编程项目fastDFS分布式文件系统(九)总结
1. Location语法 1. 语法规则 location [ |~|~ * |^~ ] /uri/ { … } 正则表达式中的特殊字符 : - . () {} [] * ? 2. Location 优先级说明 在 nginx 的 location 和配置中 location 的顺序没有太大关系。 与 location 表达式的类型有关。 相同类型的表达式&a…...
第五章 树与二叉树 一、树的定义与考点
一、定义 1.树是由n (n > 0) 个节点组成的有限集合。 2.当n0时,称为空树。 3.在非空树中,有且仅有一个节点没有前驱,其他节点都有且仅有一个前驱,称为根节点。 4.每个节点有零个或多个子节点,而每个子节点又有零…...
C语言基础之——指针(下)
前言:本篇文章将继续讲解有关指针的剩余基础知识。 学无止境,一起加油叭!! 目录 一.指针运算 1.指针 - 整数 2.指针的关系运算 3.指针 - 指针 二.指针与数组 三.二级指针 四.指针数组 总结 一.指针运算 指针运算包括以下三…...
小研究 - JVM 的类装载机制
本文通过对一个类装载实例的分析,阐明了 Java虚拟机的类装载的代理机制和由此定义的命名空间,指出了类装载机制在容器/组件/抽象框架结构中的作用。 目录 1 引言 2 实例 3 分析 3.1 类装载的代理机制 3.2 Java的命名空间 3.3 解决问题 4 应…...
项目---日志系统
目录 项目系统开发环境核心技术日志系统介绍为什么需要日志系统? 日志系统框架设计日志系统模块划分代码实现通用工具实现日志等级模块实现日志消息模块实现格式化模块实现落地模块实现日志器模块同步日志器异步日志器缓冲区实现异步工作器实现 回归异步日志器模块建造者模式日…...
设计模式--建造者模式(Builder Pattern)
一、什么是建造者模式 建造者模式(Builder Pattern)是一种创建型设计模式,它关注如何按照一定的步骤和规则创建复杂对象。建造者模式的主要目的是将一个复杂对象的构建过程与其表示分离,从而使同样的构建过程可以创建不同的表示。…...
若依vue打印的简单方法
像我们后端程序员做前端的话,有时候真不需要知道什么原理,直接塞就好了 我们选用基于hiprint 的vue-plugin-hiprint来打印 目的是为了实现点击某些行的数据,然后点击某个按钮直接弹出下面的打印 此链接 大佬是原创,我拿来总结梳理一下 插件进阶功能请移步: 链接 插件模板制作页…...
Rust 基础语法学习
Rust 基础语法学习 文章目录 Rust 基础语法学习hello world变量数据类型整数类型进制表示方法浮点数类型布尔类型字符类型字符串复合类型元组结构体元组结构体 切片类型字符串切片数组切片 不可变变量与可变变量常量注释函数语句与表达式 流程控制语句if else条件判断while循环…...
iOS开发Swift-函数
1.函数的定义和调用 func greet(person: String) -> String { // 函数名 传入值 传入值类型 返回值类型let greeting "Hello" personreturn greeting } print( greet(person: "Anna") ) //调用2.函数的参数与返回值 (1)无参函数 func sayHe…...
序列化协议:JSON和XML
作者:CARROT 链接:https://www.zhihu.com/question/604811576/answer/3100483698 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 json和xml都是数据传输的格式。比如我们开发过程中需要和网…...
江西萍乡能源石油化工阀门三维扫描3d测量抄数建模-CASAIM中科广电
长期以来,石油天然气、石油石化、发电和管道输送行业在环保、健康和安全保障方面一直承受着巨大的压力,他们必须确保相关规程在各项作业中得到全面贯彻。 阀门作为流体管道运输中的组成部分,其装配密封度是保证流体运输安全的重要一环&#…...
Go【gin和gorm框架】实现紧急事件登记的接口
简单来说,就是接受前端微信小程序发来的数据保存到数据库,这是我写的第二个接口,相比前一个要稍微简单一些,而且因为前端页面也是我写的,参数类型自然是无缝对接_ 前端页面大概长这个样子 先用apifox模拟发送请求测试…...
第一个VUE程序?
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title></head> <body><div id"app">{{message}} </div><!-- 1.导入Vue.js --> <script s…...
电阻器件的分类
电阻器的种类碳膜电阻膜式电阻器中的一种。气态碳氢化合物在高温和真空中分解,碳沉积在瓷棒或者瓷管上,形成一层结晶碳膜。改变碳膜厚度和用刻槽的方式变更碳膜的长度可以得到不同的阻值。碳膜电阻成本较低,电性能和稳定性较差,一…...
QT基础教程之二 第一个Qt小程序
QT基础教程之二 第一个Qt小程序 按钮的创建 在Qt程序中,最常用的控件之一就是按钮了,首先我们来看下如何创建一个按钮 QPushButton * btn new QPushButton; 头文件 #include <QPushButton>//设置父亲btn->setParent(this);//设置文字btn-&g…...
AgiBot World数据集实战:如何用百万级轨迹训练你的机器人策略(附避坑指南)
AgiBot World数据集实战:百万级轨迹训练机器人策略的完整指南 1. 数据集的革命性价值 在机器人学习领域,数据质量与规模直接决定了策略模型的性能上限。AgiBot World作为当前最大的开源机器人操作数据集,其核心突破在于: 规模突…...
Nextcloud Android文件同步革命:实现跨设备无缝数据访问的完整指南 [特殊字符]
Nextcloud Android文件同步革命:实现跨设备无缝数据访问的完整指南 📱 【免费下载链接】android 📱 Nextcloud Android app 项目地址: https://gitcode.com/gh_mirrors/andr/android Nextcloud Android应用是一款功能强大的开源云存储…...
破局与重构:基于“智慧大脑”的企业全面数据化经营深度解构(PPT)
“在数字时代,企业最大的风险不是数据的匮乏,而是决策依然依赖经验直觉而非数据驱动。” —— 这份《数字化建设企业经营解决方案》文档,不仅是一份技术蓝图,更是对传统企业经营管理模式的一次彻底颠覆。它描绘了一个从“人治”迈…...
从‘飞到红色建筑左边’说起:拆解无人机视觉语言导航(VLN)背后的三大工程难题
从"飞到红色建筑左边"说起:拆解无人机视觉语言导航的工程化困局 当你在测试场地对无人机说出"飞到红色建筑左边"时,这个看似简单的指令背后,是一场跨越模态鸿沟的复杂解码过程。不同于实验室里的完美演示,真实…...
解决企业知识孤岛挑战:Outline多平台文档迁移架构与技术实现方案
解决企业知识孤岛挑战:Outline多平台文档迁移架构与技术实现方案 【免费下载链接】outline Outline 是一个基于 React 和 Node.js 打造的快速、协作式团队知识库。它可以让团队方便地存储和管理知识信息。你可以直接使用其托管版本,也可以自己运行或参与…...
如何通过DeepWiki实现本地部署的智能文档生成与数据安全保障?
如何通过DeepWiki实现本地部署的智能文档生成与数据安全保障? 【免费下载链接】deepwiki-open Open Source DeepWiki: AI-Powered Wiki Generator for GitHub Repositories 项目地址: https://gitcode.com/gh_mirrors/de/deepwiki-open 在数字化开发的浪潮中…...
AI 培训报名:主流机构专业度对比分析
引言 随着人工智能技术的快速发展,AI 培训市场也日益火爆。无论是企业还是个人,都希望通过专业的培训来提升对 AI 技术的应用能力。然而,当前 AI 培训市场鱼龙混杂,机构众多,质量参差不齐。企业和个人在选择 AI 培训机…...
3分钟快速上手:text-generation-webui大模型本地部署完全指南
3分钟快速上手:text-generation-webui大模型本地部署完全指南 【免费下载链接】text-generation-webui A Gradio web UI for Large Language Models. Supports transformers, GPTQ, AWQ, EXL2, llama.cpp (GGUF), Llama models. 项目地址: https://gitcode.com/Gi…...
TranslateGemma高可用部署:健康检查、监控与自动恢复策略
TranslateGemma高可用部署:健康检查、监控与自动恢复策略 1. 为什么高可用部署对TranslateGemma至关重要 TranslateGemma作为企业级神经机器翻译系统,在生产环境中面临着724小时不间断服务的严苛要求。不同于开发测试环境,生产部署必须考虑…...
赋能工业智能化转型实战案例解析
随着“工业4.0”和智能制造的深入推进,工业生产现场正经历着从“自动化”向“智能化”的深刻转型。在这一进程中,传统的机器视觉(MV)虽在速度与精度上表现优异,但面对柔性制造、非结构化环境以及复杂多变的任务需求时&…...
