Druid学习之路 (二)Druid架构
作者: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种类型:
- 数据节点负责运行historical以及middle manager这些进程
- 查询节点负责运行broker和router进程(可选)
- 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
Druid学习之路 (二)Druid架构的更多相关文章
- 『NiFi 学习之路』把握 —— 架构及主要部件
一.概述 通过前面几篇文章的学习,相信你对 NiFi 有了一个基础性的了解. 数据处理和分发系统 是什么概念? NiFi 系统中数据的传递方式是怎样的? NiFi 的重要 Processor 有哪些? ...
- Druid学习之路 (三)Druid的数据源和段
作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9703204.html 转载请注明出处 Druid的数据源和分段 Druid的数据存储在"Da ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- Android开发学习之路--Android系统架构初探
环境搭建好了,最简单的app也运行过了,那么app到底是怎么运行在手机上的,手机又到底怎么能运行这些应用,一堆的电子元器件最后可以运行这么美妙的界面,在此还是需要好好研究研究.这里从芯片及硬件模块-& ...
- Druid学习之路 (一)Druid初识
作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9588079.html 转载请注明出处 最近在学习和使用Druid.觉得一些章节有必要按照自己的理解翻译 ...
- Druid学习之路 (五)Druid的数据摄取任务类型
作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9885534.html 转载请注明出处 Druid的数据摄取任务类型 Druid支持很多种类型的数据摄取 ...
- Druid学习之路 (四)Druid的数据采集格式
作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9715735.html 转载请注明出处 Druid的数据采集格式 Druid可以采集非标准化的数据诸如J ...
- zigbee学习之路(二)点亮LED
一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2 ...
- C# Hadoop学习笔记(二)—架构原理
一,架构 二.名词解释 (一)NameNode(简称NN),Hadoop的主节点,负责侦听节点是否活跃,对外开放接口等.在未来的大数据处理过程中,由于访问量和节点数量的不断增多,需要该节点的处理能 ...
随机推荐
- videoview 播放视频
-videoVIew 继承SurfaceView 使用android的VideoView来播放一个视频,步骤是: 1,在xml中创建一个videoView, 2,在java中导入,然后创建一个Medi ...
- JZOJ.5326【NOIP2017模拟8.21】LCA 的统计
Description
- Vscode 调试 C 语言时数组值无法显示的问题
使用 Vscode 的 Gdb 扩展调试 C 语言时,发现数组变量在 变量列表里面中显示为指针,且只显示为其第一个元素的值,无法看到所有元素的值. 如图所示: 解决: 假设有一个元素个数为10的数组v ...
- Zabbix高可用
上一篇:Zabbix数据库表结构 安装两台Zabbix-server 两台均安装MySQL数据库 数据库做双主互相同步 keepalive做vip偏移 to_master.sh脚本 两边都要安装ssh ...
- HDU_5527_Too Rich
Too Rich Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- ZOJ3690—Choosing number
题目链接:https://vjudge.net/problem/ZOJ-3690 题目意思: 有n个人,每个人可以从m个数中选取其中的一个数,而且如果两个相邻的数相同,则这个数大于等于k,问这样的数一 ...
- 污染Bootstrap modal 通过 css选择器 避免
w 对框架的掌握.改进. 0-存在重复代码,需要改正,js timepicker框架传入类名: 1-大量的点击块,怎样避免对每个块重复写modal? <style> .w > td ...
- Linux上安装pip以及setuptools
毕竟丰富的第三方库是python的优势所在,为了更加方便的安装第三方库,使用pip命令,我们需要进行相应的安装. 1.安装pip前需要前置安装setuptools 命令如下: wget --no-ch ...
- python一两行代码完成的骚操作
分享一个前几天晚上粉丝问的问题,觉得很实用的一个问题,用python读取Excel并保存字典,如何做? 下面是该同学问题截图和代码 代码截图是下面这样的 不知道大家第一眼看了这个代码,什么感受 ...
- swagger接口变动监控
版本与版本之间迭代,总会发生接口的变化,而这些变化开发不会都告诉测试,测试需要把全部接口检查一遍,这样就降低了测试效率. 为了解决这个问题,结合公司实际项目进行了以下设计: 1.对比测试环境swagg ...