Druid原理分析之“批”任务数据流转过程
2018-04-03 14:59
477 查看
本文以HDFS中的数据作为数据源,描述Druid中对批数据的处理流程:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/24/afafaa6bf21d9c2d1a1f57019e25c2bb)
向Druid中提交批数据处理请求。Druid中的批处理任务会从HDFS中获取原数据。
批任务会根据处理请求生成segment,并将生成的segments存到Deep Storage(HDFS)中。
将生成的segment的元数据信息保存到元数据存储DB(如MySQL)
Coordinator会定时从元数据存储DB中查新生成的segment信息。
Coordinator将这些segment的信息写入Zookeeper的loadqueue中。
Historical节点监听ZooKeeper中的loadqueue,并从loadqueue中获取其需要加载的segment信息。
Historical节点从Deep Storage下载所需要的segment到本地磁盘。
加载完成后,Historical将下载的这些segment注册到ZooKeeper中。
客户端查询时,首先将请求发送到Broker,然后Broker首先从缓存中查找是否有需要的数据。
如果没有,Broker会从ZooKeeper中获取segment信息。
将查询请求发送至相关Historical节点,Historical节点进行计算后,将各自的部分查询结果返回给Broker。
Broker聚合后将结果返回给客户端。
向Druid中提交批数据处理请求。Druid中的批处理任务会从HDFS中获取原数据。
批任务会根据处理请求生成segment,并将生成的segments存到Deep Storage(HDFS)中。
将生成的segment的元数据信息保存到元数据存储DB(如MySQL)
Coordinator会定时从元数据存储DB中查新生成的segment信息。
Coordinator将这些segment的信息写入Zookeeper的loadqueue中。
Historical节点监听ZooKeeper中的loadqueue,并从loadqueue中获取其需要加载的segment信息。
Historical节点从Deep Storage下载所需要的segment到本地磁盘。
加载完成后,Historical将下载的这些segment注册到ZooKeeper中。
客户端查询时,首先将请求发送到Broker,然后Broker首先从缓存中查找是否有需要的数据。
如果没有,Broker会从ZooKeeper中获取segment信息。
将查询请求发送至相关Historical节点,Historical节点进行计算后,将各自的部分查询结果返回给Broker。
Broker聚合后将结果返回给客户端。
相关文章推荐
- Druid原理分析之“流”任务数据流转过程
- hadoop数据流转过程分析
- 书籍-Druid实时大数据分析原理与实践
- 变态的libDispatch源码分析-全局队列异步延时任务处理过程-原理与创建ds
- 网络数据流接收处理过程分析
- 数据分析与处理之二(Leveldb 实现原理)
- 从CM刷机过程和原理分析Android系统结构
- fMRI数据分析处理原理及方法
- 文件数据分析制作过程【2】
- 将保存到文件中的数据重新解析到控件中过程分析
- 10.Spark Streaming源码分析:Receiver数据接收全过程详解
- MaxCompute上你从未体验过的数据分析和机器学习过程
- ASP.NET 2.0运行原理及其过程简要分析
- I2C数据传输过程分析
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
- 嵌入式 vlc从接收到数据流到播放视频的过程分析(经典)
- Android系统在新进程中启动自定义服务过程(startService)的原理分析 (上)
- S3C2410-2440启动代码内数据复制过程的分析
- spark数据倾斜解决方案--原理及现象分析
- FragmentPagerAdapter刷新数据原理分析与解决