首页 > 其他分享 >dremio FragmentStarter 简单说明

dremio FragmentStarter 简单说明

时间:2023-01-11 21:13:17浏览次数:54  
标签:src dremio java exec sabot FragmentStarter 简单 com

FragmentStarter 主要进行FragmentExecutor的启动管理

Fragment 执行简单说明

dremio 对于Fragment的执行与apache drill 是一致的,会包含root,中间,以及leaf,同时Fragment 会包含
major 以及 minor fragments,每个fragment 会包含不少operator,每个fragment 的执行是由单线程处理的
fragment 是术语上的,FragmentExecutor 是对于fragment pipeline 的处理(此处dremio 包含了一个pipeline的处理)
major 实际上是一个逻辑名称实际干活的是minor,root 的核心是获取查询,读取表的元数据,重写查询以及路由到下一
层同时也会返回数据给客户端应用 ,中间层在数据可用以及从其他fragment 来数据的时候进行工作,同时也会传递查询结
果数据到root 中,leaf(并行扫描处理存储的)的部分数据会传递到中间中,中间Fragment 会并行进行操作
备注:以上部分与google Dremel 基本一致的

参加执行

  • FragmentStarter
    FragmentStarter 调用链如下,实际上是有客户端发起然后,通过dremio的ForemenWorkManager 处理的,当然内部还包含了job 处理
 
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 401 ms, listenerId: 2
ts=2023-01-11 12:49:00;thread_name=1c414fc3-29fd-3908-1ffc-dcd05a09d700:foreman;id=33c;is_daemon=true;priority=10;TCCL=sun.misc.Launcher$AppClassLoader@18b4aac2
    @com.dremio.exec.maestro.FragmentStarter.start()
        at com.dremio.exec.maestro.QueryTrackerImpl.startFragments(QueryTrackerImpl.java:151)
        at com.dremio.exec.maestro.MaestroServiceImpl.executeQuery(MaestroServiceImpl.java:176)
        at com.dremio.exec.work.foreman.AttemptManager.run(AttemptManager.java:414)
        at com.jprofiler.agent.callee.RunnableTracking.run(ejt:19)
        at com.dremio.context.RequestContext.run(RequestContext.java:96)
        at com.dremio.common.concurrent.ContextMigratingExecutorService.lambda$decorate$3(ContextMigratingExecutorService.java:199)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)
  • FragmentExecutor

 

 

说明

以上只是简单的介绍了FragmentStarter 部分,实际可以多看源码学习

参考资料

sabot/kernel/src/main/java/com/dremio/exec/maestro/QueryTrackerImpl.java
sabot/kernel/src/main/java/com/dremio/exec/maestro/FragmentStarter.java
sabot/kernel/src/main/java/com/dremio/sabot/driver/PipelineCreator.java
sabot/kernel/src/main/java/com/dremio/sabot/exec/FragmentWorkManager.java
sabot/kernel/src/main/java/com/dremio/sabot/exec/fragment/FragmentExecutor.java
sabot/kernel/src/test/java/com/dremio/exec/maestro/TestFragmentTracker.java
sabot/kernel/src/test/java/com/dremio/sabot/exec/fragment/TestFragmentExecutor.java
sabot/kernel/src/test/java/com/dremio/sabot/exec/TestFragmentExecutors.java
sabot/kernel/src/main/java/com/dremio/exec/planner/fragment/SimpleParallelizer.java
sabot/kernel/src/main/java/com/dremio/exec/planner/fragment/PlanFragmentFull.java
sabot/kernel/src/main/java/com/dremio/exec/maestro/QueryTrackerImpl.java
sabot/kernel/src/main/java/com/dremio/exec/work/protector/Foreman.java
services/jobs/src/main/java/com/dremio/service/jobs/LocalJobsService.java
https://panoply.io/data-warehouse-guide/bigquery-architecture/
https://drill.apache.org/docs/drill-query-execution/
https://cloud.google.com/blog/products/data-analytics/new-blog-series-bigquery-explained-overview

标签:src,dremio,java,exec,sabot,FragmentStarter,简单,com
From: https://www.cnblogs.com/rongfengliang/p/17044900.html

相关文章

  • dremio PhysicalPlanReader 简单说明
    dremio在经过sql解析,sql转换,优化器,物理执行计划,会包含一个基于jackson序列化的格式的执行计划信息(整体与drill是类似的)提供的能力注册自定义的jackson序列化处理模块......
  • leaflet的简单使用
    一、官网https://leafletjs.com/reference.html  leaflet是一个轻量级的地图组件,但是由于地图使用的是瓦片地图图片,而leaflet使用的图片是https://tile.openstreetmap......
  • 简单抓包一例
    客户端抓包相对简单,由于服务端发过来的前两个包没收到,且开起来SACK功能,所以在客户端通知服务端已收到(2921-5841)后,服务端通过两个包重传了(1-2921)。服务端共发送了(9096)。......
  • mac分屏功能怎么用?mac分屏magnet上手简单
    mac分屏功能怎么用?很多时候想两个页面一起看,或者打开一个Excel一个页面,想照着写,来回切换效率非常慢,如果可以像Windows分屏就会很方便。其实Mac系统是自带分屏功能的。Window......
  • 最简单的for循环语句
    前言在前面的文章中,壹哥给大家讲解了顺序结构、分支结构,接下来我们就来学习Java里的循环结构。Java里的循环结构,可以通过while、do-while、for、foreach等方式进行实现,今......
  • 使用File类创建简单的文件目录检索小工具
    File类的常用方法序号方法描述1publicStringgetName()返回由此抽象路径名表示的文件或目录的名称。2publicStringgetParent()****、返回此抽象路径名......
  • tinyproxy简单应用(linux设置网络代理、中转)
    1、安装yuminstalltinyproxy-y 2、修改配置文件修改代理ip和端口vim/etc/tinyproxy/tinyproxy.conf 3、服务管理systemctlstarttinyproxysystemc......
  • 编译打包rabbitmq然后一键部署的简单方法
    摘要之前总结过一版,但是感觉不太全面想着本次能够将使用中遇到的问题总结一下.所以本次是第二版介质下载rabbitmq不区分介质的打包文件rabbitmq-server-generic-......
  • MapUtil简单使用
    1maven <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.11</version>......
  • postman 使用简单汇总
    postman官网下载地址:https://www.postman.com/downloadsPostman支持功能1、快速构建2、参数化与变量设置提取3、查看请求数据4、提供断言功能5、批量运行6、设置环......