作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9608812.html 转载请注明出处

Druid架构

Druid原本就设计为一个容易操作的面向云的多进程分布式的架构.druid的每个不同的进程类型都能够独立的扩展和配置,这会给你的集群带来最大化的自由度.这种设计也会提供加强版的容错机制:一个组件的挂掉不会立即影响其他组件的运行.

Druid的节点进程类型包含以下这些:

  • Historical 节点作为主力来负责处理历史数据的存储和查询(包含那些已经在系统中存活了很久的实时数据需要提交到历史节点),历史节点从Deep Storage下载Segment,然后响应Broker对于Segment的查询将查询结果返回给Broker节点.历史节点不接受直接的写入
  • MiddleManager 节点负责摄取新的数据到集群里面.这些节点负责从外部数据源读取数据然后发布到本地segments中去.
  • Broker节点接收外部客户端的查询,并且将查询路由到historical节点和middle manger节点。当Broker收到返回的结果的时候,它将结果merge起来然后返回给调用者.终端用户通过Broker来查询而不是直接通过查询historical和middle manager节点.
  • Coordinator节点一般用来检测一组historical节点进程.这些节点负责分配和加载segments到一些servers上,它们能够保证这些segments在historicals节点上是分布均匀的.
  • Overlord节点用来监控middle manager进程,控制数据的摄取到druid集群.他们负责分配摄取任务给相应的middle manager以及协调segment的发布.
  • Router节点是可选的进程,它能够给broker,overlord,coordinator提供一个统一的网关api来进行访问.这个节点是可选的,因为你可以直接访问broker,overlord以及coordinator.

Druid这些进程都能够单独的部署(可以部署在物理机,虚拟机,或者其他容器上),也可以托管在共享服务器上.一个常见的托管计划包含以下3种类型:

  1. 数据节点负责运行historical以及middle manager这些进程
  2. 查询节点负责运行broker和router进程(可选)
  3. master节点负责运行coordinator和overlord进程.当然他们上面还可以跑zookeeper.

在这些进程之外,druid还提供另外3个外部依赖.这些依赖会影响现有集群的基础建设.

  • Deep storage对druid服务器之间提供文件共享的访问功能.当然这些都是分布式的文件存储系统比如像S3,HDFS以及一些网络文件系统.Druid利用这种文件系统来存储那些已经被摄取到系统的数据.
  • Metadata store负责元数据的存储.一般用传统的RDBMS比如postgreSQL或者MySql来存储.
  • Zookeeper用来协调druid不同组件的内部的服务发现以及leader选举.

这种架构的本意是为了在生产坏境中大规模使用Druid集群更加简单化.比如,deep storage和metadata store存储分离意味着druid集群有极强的容错能力:即使单个druid服务节点跪了,仍然能够通过deep storage和metadata store来快速启动和恢复.

下面这个图展示了查询和数据流如何通过这个架构来实现的

参考文档:http://druid.io/docs/latest/design/index.html#architecture

转载于:https://www.cnblogs.com/cssdongl/p/9608812.html

Druid学习之路 (二)Druid架构相关推荐

  1. 前端Vue学习之路(二)-Vue-router路由

    Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...

  2. Hive学习之路(二):Hive表操作详讲

    操作内容简介 一.操作前的准备 二.Hive表操作详讲 1. 创建数据库 2. 查看所有数据库/表 3. 在Hive上直接操作HDFS 4. 在Hive上直接执行终端命令 5. 创建数据表/查看表的信 ...

  3. python 剑指offer 学习之路(二)

    剑指offer 学习之路 合并两个排序的链表 树的子结构 顺时针打印矩阵 包含min函数的栈 从上往下打印二叉树 二叉搜索树的后序遍历序列 二叉树中和为某一值的路径 复杂链表的复制 数组中出现次数超过 ...

  4. Druid学习之路 (四)Druid的数据采集格式

    作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9715735.html 转载请注明出处 Druid的数据采集格式 Druid可以采集非标准化的数据诸如J ...

  5. zigbee学习之路(二)点亮LED

    一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2 ...

  6. Spring Boot 学习之路二 配置文件 application.yml

    一.创建配置文件 如图所示,我们在resources文件夹中新建配置文件application.yml 结构图 二.一些基本配置 server: port: 8090 //配置端口session-ti ...

  7. UE4网络编程学习之路02----网络架构、通信

    参考视频 Server-Client架构 一个服务器,一个或多个客户端 不能信任客户端,所有重要信息都需要通过服务器验证 Listen Server & Dedicated Server    ...

  8. C++学习之路二:C++

    目录 二.C++ 1. C,java,C++区别 2. C++ 对象模型(C++ class底层原理) 2.1 基本对象模型与C++对象模型 2.2 C++ 构造函数模型 2.3 C++继承的底层原理 ...

  9. 3D点云之PCL学习之路(二)

    VTK的基本知识(1) PCL使用的第三方库有 boost.eigen.FLANN.OpenNI2.Qhull.VTK. PCL的显示部分就是基于VTK来实现的.简单介绍一下这个库.主要参考依据是:& ...

最新文章

  1. 华为诺亚方舟开源预训练模型“哪吒”,4项任务均达到SOTA
  2. 能进这个Java组织的都是大神,现在只有三个中国人
  3. 皮一皮:这有够不明显的...
  4. postgresal去重_PostgreSQL数据去重
  5. 操作系统设计与实现第3版笔记与minix3心得(5)-操作系统发展历史(3)
  6. IMPDP table_exists_action 参数的应用
  7. 开发用户导航栏和权限信息接口
  8. python 编程效率_如何有效提升数据分析效率?五大Python技巧
  9. nginx的基础学习+实战
  10. 如何使用 Pages 在 iPhone、iPad 或 Mac 上插入和编辑表格?
  11. win7 或 win10系统开机启动项设置
  12. UA PHYS515 电磁理论I 麦克斯韦方程组基础6 说明真空中电磁波传播速度等于光速
  13. Django models Fild详解
  14. 淘宝抢购Python脚本
  15. scrapy 去重 dont_filter=False
  16. 如何设计签名 我的名字
  17. 山东科技大学OJ题库 1904 帮小明算算数
  18. IJCAI 2022 | 用一行代码大幅提升零样本学习方法效果!南京理工牛津提出即插即用分类器模块...
  19. 在一个字符串中找出元音字母a,e,i,o,u出现的次数
  20. mysql 计算工作日_MySQL函数查找两个日期之间的工作日数

热门文章

  1. Android中Service的使用
  2. 修改mysql编码方式
  3. Java、Android、oc冒泡排序算法随笔
  4. Bootstarp4 列表组
  5. AngularJS.js: temple
  6. 某集网将我的信息给了谁?还是不良卖家不想卖东西
  7. poj1236 Tarjan算法模板 详解
  8. tcp 出现rst情况整理
  9. Elementui 自定义loading
  10. Ajax同步交互与异步交互