开发者社区> 问答> 正文

Druid的组成部分Realtime node的使用方法具体是什么?

Druid的组成部分Realtime node的使用方法具体是什么?

展开
收起
游客qzzytmszf3zhq 2021-12-09 20:35:38 360 0
1 条回答
写回答
取消 提交回答
  • 实时节点封装了导入和查询事件数据的功能,经由这些节点导入的事件数据可以立刻被查询。 实时节点只关心一小段时间内的事件数据,并定期把这段时间内收集的这批不可变事件数据导入到Druid集群里面另外一个专门负责处理不可变的批量数据的节点中去。 实时节点通过Zookeeper的协调和Druid集群的其他节点协调工作。实时节点通过Zookeeper来宣布他们的在线状态和他们提供的数据

    实时节点为所有传入的事件数据维持一个内存中的索引缓存, 随着事件数据的传入,这些索引会逐步递增,并且这些索引是可以立即查询的,查询这些缓存于JVM的基于堆的缓存中的事件数据,Druid就表现得和行存储一样 为了避免堆溢出问题,实时节点会定期地、或者在达到设定的最大行限制的时候,把内存中的索引持久化到磁盘去 这个持久化进程会把保存于内存缓存中的数据转换为基于列存储的格式,所有持久化的索引都是不可变的,并且实时节点会加载这些索引到off-heap内存中使得它们可以继续被查询 上图实时节点缓存事件数据到内存中的索引上,然后有规律的持久化到磁盘上。在转移之前,持久化的索引会周期性地合并在一起。查询会同时命中内存中的和已持久化的索引 所有的实时节点都会周期性的启动后台的计划任务搜索本地的持久化索引,后台计划任务将这些持久化的索引合并到一起并生成一块不可变的数据,这些数据块包含了一段时间内的所有已经由实时节点导入的事件数据,我们称这些数据块为”Segment”。在传送阶段,实时节点将这些segment上传到一个永久持久化的备份存储中,通常是一个分布式文件系统,例如S3或者HDFS,Druid称之为”Deep Storage”。

    2021-12-09 20:35:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
探究 Node.js 的服务端之路 立即下载
个推微服务实践 基于OpenResty 和Node.js 立即下载
沪江基于Node.js大规模应用实践 立即下载