【Druid】Coordinator Node

Druid协调节点主要负责segment的管理和分配,它基于配置信息通知历史节点加载和删除segments。具体来说,协调节点的工作主要包括以下几个方面:加载新segments信息,删除过期segments信息,管理segment的复制操作和segment的负载均衡。

协调节点周期性的执行操作,执行间隔通过配置参数指定。与Broker和Historical节点类似,协调节点也会与ZK维持一个长连接,在执行相应的动作之前,协调节点会从ZK获取集群当前的状态。同时协调节点也维持着与一个数据库的链接,其中存储着可用segments和规则的信息。可用segments信息存储在segment表里,其中列除了所有在集群中加载的segments。规则信息存储在规则表中,它指明了segments应该被怎样处理。

在一个新segment被分配至历史节点前,所有可用的历史节点会根据已存储数据的大小进行排序,存储数据最少的节点有最高的优先级被分配到新segment,这种机制是为了节点之间存储的均衡。协调节点不会直接同历史节点进行通信,分配segment的过程是通过在ZK中相应的历史节点路径下创建临时segment信息节点完成的。一旦该动作被历史节点获知,该segment就会被历史节点加载,并使其可查询。

Running

io.druid.cli.Main server coordinator

Rules

Segments基于一组机制能够实现从集群中动态的加载和删除

Cleaning Up Segments

每一次执行时,协调节点将会对数据库中存储的可用segment信息和集群中当前可用的segment信息做比较。集群中存在但数据库中不存在的segments将会被标记并加入待删除队列。对于那些版本已过期并且数据已被新的segments覆盖的segments也会被删除。注意,如果数据库中所有的segments都被删除了(或者被标记为不可用),协调节点这时不会从集群中删除segments。

Segment Availability

如果一个历史节点由于重启或者其他原因处于不可用状态,协调节点会通知一个历史节点丢失,并将该历史节点服务的segments全部置为dropped。在一段时间后,这些segments会被重新分配给集群中的其它节点。但是,并不是每个被删除的segments信息马上就会被集群清理,会有一个数据结构来存储删除的segments和它们对应的生命周期。在这个周期时间内,协调节点不会重新分配这个删除的segments。因此,当一个历史节点在很短的时间内转变为可用状态时,它就能马上启动并使本地cache中的segments可用,同时避免了segments在集群节点中的从新分配过程。

Balancing Segment Load

为了保证segments在集群中尽可能地均匀分布,协调节点在每次运行时会计算每个历史节点所服务的所有segments的数据量情况。在集群每一层的历史节点中,协调节点会选出存储利用率最高和最低的历史节点,如果两个节点之间的利用率差值超过了一定的阈值,协调节点就会将一部分segments从最高利用率节点迁移到最低利用率节点,能够迁移的segments数量上限通过一个参数来限制。对于需要迁移Segments的选择是随机的,并且只有迁移动作真正能使利用率降低的情况下segments才会被迁移。

HTTP Endpoints

协调节点提供的接口(协调节点提供的接口很多,这里列举几个,详情请参考官网 【HTTP Endpoints】小节):

GET

  • /status
    返回Druid的版本信息、加载扩展、使用内存、全部内存和该节点其他有用的信息

Coordinator information

  • /druid/coordinator/v1/leader
    返回当前集群主协调节点
  • /druid/coordinator/v1/loadstatus
    返回已加载在集群中的segments和所有应加载segments的比率
  • /druid/coordinator/v1/loadstatus?simple
    返回未加载的segments和所有应加载segments的比率,不包括segments副本
  • /druid/coordinator/v1/loadstatus?full
    返回未加载的segments和所有应加载segments的比率,包括segments副本
  • /druid/coordinator/v1/loadqueue
    返回每个历史节点加载和删除segments的ID
  • /druid/coordinator/v1/loadqueue?simple
    返回每个历史节点加载和删除segments的数目和及其加载和删除的数据总量。
  • /druid/coordinator/v1/loadqueue?full
    返回每个历史节点加载和删除segments的json序列化信息。

Metadata store information

  • /druid/coordinator/v1/metadata/datasources
    返回集群中所有可用的datasources列表
  • /druid/coordinator/v1/metadata/datasources?includeDisabled
    返回集群中所有可用的和不可用的datasources列表
  • /druid/coordinator/v1/metadata/datasources?full
    返回集群中所有可用的datasources列表及其存储的meta信息。
  • /druid/coordinator/v1/metadata/datasources/{dataSourceName}
    返回给定的datasource及其存储的meta信息。
  • /druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments
    返回一个给定datasource中的所有segments列表
  • /druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments?full
    返回一个给定datasource中的所有segments列表及其meta信息

Datasources information

  • /druid/coordinator/v1/datasources
    返回集群中查询到的datasources列表
  • /druid/coordinator/v1/datasources?simple
    返回一个包括datasource名称及其配置信息的json对象,对象中包含segments数量,segments数据总大小、最小时间和最大时间

Rules

以json对象的形式返回集群中所有datasource包括默认datasource包含的rules信息。

Intervals

  • /druid/coordinator/v1/intervals
    返回所有datasource的intervals信息,包括总大小和数量

DELETE

  • /druid/coordinator/v1/datasources/{dataSourceName}
    disable 一个给定的datasource
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,200评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,526评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,321评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,601评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,446评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,345评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,753评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,405评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,712评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,743评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,529评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,369评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,770评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,026评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,301评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,732评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,927评论 2 336