Druid服务介绍

druid 架构

在这里插入图片描述

Coordinator:

管理数据,负责segments的管理和分发。
定期执行,执行周期可配置。

职能:

1,与historical节点进行通信(并不是直接通讯,是通过zookeeper相关path),加载新的segment或者删除过时的segment。
2,备份segments到不同的historical节点(备份数量可配置)。
3,移动segment确保historical节点间负载均衡(historycal进程最高利用率和最低利用率超过某个阀值会触发负载均衡)。
4,合并小的segment,按时间顺序由新到旧的顺序查找合并。
coordinator会定期执行任务。总是将新建的segment分配给负载最低的historical服务。在zookeeper /druid/loadQueue 队列中相应的historical节点下创建包含segment信息的零时znode,historical会自动加载segment。

Overload:

负责接受任务,协调任务分配,围绕任务创建锁,并将状态返回给调用者。

职能

1,提供管理,监控任务的界面

 http://<OVERLORD_IP>:<OVERLORD_PORT>/console.html

2,负责黑名单机制:
MiddleManager节点任务失败超过一定限度后,该节点会被纳入黑名单中,最多不能超过20%的节点被纳入黑名单,纳入黑名单的节点也会周期性的移出黑名单。

druid.indexer.runner.maxRetriesBeforeBlacklist
druid.indexer.runner.workerBlackListBackoffTime
druid.indexer.runner.workerBlackListCleanupPeriod
druid.indexer.runner.maxPercentageBlacklistWorkers

Broker

负责数据查询,缓存查询结果。

职能

1,负责将查询分割成字查询并分发到不通的数据节点上并行执行,并汇总查询结果。broker通过zookeeper来知晓segment的分布情况,各数据管理进程会将自己管理的segment元数据信息注册到zookeeper中。
2,缓存查询结果,任何segment的查询结果如果在缓存中已经存在将直接读取不进行查询操作。只会缓存历史节点的查询结果,实时节点不会缓存(实时节点数据会变化)。

router

提供统一的访问接口。

职能

1,提供强大的UI工具。(界面可以进行sql操作,也可以通过hive外表的方式在hive中通过sql访问druid数据)。
2,在Brokers,Overlords,Coordinators 之上提供统一的访问接口。rokers,Overlords,Coordinators都是可以直接访问的,所以router不是必须的。

Historical

负责具体segments的组件

职能

1,从zookeeper中下载分配给自己的segment元数据信息,这些信息包括存储系统路径,压缩方式,如何处理segment等信息,处理完成之后会通过zookeeper申明对该zookeeper负责。
2,Historical节点会在本地缓存自己管理的segment,Historical进程启动后会检查缓存目录,加载所有segment并对外提供服务。segement生成后是不可更改的,所以不用担心数据变更带来的不一致问题,数据更新会生成新的高版本的segment。

MiddleManager

MiddleManager是计算节点,是实际负责执行提交的任务的进程。

职能

1,负责从外部数据源中读取数据并发布新的segment。
2,实时流式数据摄取的情况下,比如说数据从kafka到druid,MiddleManager还负责已接受部分的数据在形成segment落盘之前的查询工作。(流式数据实时可查,批量加载的数据在一个chunk内的所有segment完全写入成功后才可查询最新数据)
3,每个MiddleManager会启动多个Peon进程(Peon和启动它的MiddleManager在一台机器上),每个Peon进程都是一个独立的JVM(为了资源和日志的隔离),每个peon一次只能执行一个任务。

组合部署

为了方便建议将以上服务组织成三个角色。
Master:Coordinator+Overlord,负责管理已经存在的数据和数据接入
Query: Broker+Router,负责接收客户端的查询请求
Data:Historical+MiddleManager,存储可查询的数据,执行任务。

上一篇: Druid简介.
下一篇: Druid安装部署.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值