作者: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

Druid学习之路 (二)Druid架构的更多相关文章

  1. 『NiFi 学习之路』把握 —— 架构及主要部件

    一.概述 通过前面几篇文章的学习,相信你对 NiFi 有了一个基础性的了解. 数据处理和分发系统 是什么概念? NiFi 系统中数据的传递方式是怎样的? NiFi 的重要 Processor 有哪些? ...

  2. Druid学习之路 (三)Druid的数据源和段

    作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9703204.html 转载请注明出处 Druid的数据源和分段 Druid的数据存储在"Da ...

  3. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  4. Android开发学习之路--Android系统架构初探

    环境搭建好了,最简单的app也运行过了,那么app到底是怎么运行在手机上的,手机又到底怎么能运行这些应用,一堆的电子元器件最后可以运行这么美妙的界面,在此还是需要好好研究研究.这里从芯片及硬件模块-& ...

  5. Druid学习之路 (一)Druid初识

    作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9588079.html 转载请注明出处 最近在学习和使用Druid.觉得一些章节有必要按照自己的理解翻译 ...

  6. Druid学习之路 (五)Druid的数据摄取任务类型

    作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9885534.html 转载请注明出处 Druid的数据摄取任务类型 Druid支持很多种类型的数据摄取 ...

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

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

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

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

  9. C# Hadoop学习笔记(二)—架构原理

    一,架构   二.名词解释 (一)NameNode(简称NN),Hadoop的主节点,负责侦听节点是否活跃,对外开放接口等.在未来的大数据处理过程中,由于访问量和节点数量的不断增多,需要该节点的处理能 ...

随机推荐

  1. Laravel5.1 搭建博客 --文章的增删改查

    教程源于:Laravel学院 继文件上传后呢,咱来搞一搞文章的事情. 1 更改数据表 我们需要改改数据表的结构 因为涉及到重命名列名 所以咱需要引入一个包:Doctrine: composer req ...

  2. Spring学习笔记--使用Spring基于Java的配置

    我们需要使用@Component注解来定义一个配置类,在配置类中我们定义Bean: package com.moonlit.myspring; import org.springframework.c ...

  3. PMP十大知识领域整理

    2018-7-28至2018-12-8历时4个多月,学写了PMP(拍马屁),感觉自己经历了,哇-唉-哦-嗯这四个阶段 刚开始觉得如遇圣经,被PMP的知识体系和老师的精彩课程深深震撼! 后来觉得很多东西 ...

  4. Python: 使用pip升级所有包

    pip 当前内建命令并不支持升级所有已安装的Python模块. 列出当前安装的包:  pip list 列出可升级的包:  pip list --outdate 升级一个包:  pip install ...

  5. HTML代码大全

    1.html的简介* 什么是html?- HyperText Markup Language:超文本标记语言,网页语言** 超文本:超出文本的范畴,使用html可以轻松实现这样操作** 标记:html ...

  6. java递归构建菜单树

    package testSimple; import java.util.ArrayList; import java.util.List; public class BuildTree { publ ...

  7. 剑指Offer——数字在排序数组中出现的次数

    题目描述: 统计一个数字在排序数组中出现的次数. 分析: 二分变形.二分查找最左边和最右边k的位置,然后相减加一就是结果. 代码: class Solution { public: int GetNu ...

  8. windows中的进程和线程

    今天咱们就聊聊windows中的进程和线程 2016-09-30 在讨论windows下的进程和线程时,我们先回顾下通用操作系统的进程和线程.之所以称之为通用是因为一贯的本科或者其他教材都是这么说的: ...

  9. 关于Unix时间戳转北京时间的问题

    工具在这里:http://tool.chinaz.com/Tools/unixtime.aspx?qq-pf-to=pcqq.group 今天踩了坑,无论参数是多少,年份总是1970.才发现原来参数必 ...

  10. sql server中使用xp_cmdshell

    关键词:sql server开启高级配置,使用Bat,cmdshell 1.sql server中使用xp_cmdshell --允许配置高级选项 GO RECONFIGURE GO . --开启xp ...