一、索引服务
### --- 索引服务
~~~ 索引服务:数据导入并创建 segments 数据文件的服务
~~~ 索引服务是一个高可用的分布式服务,采用主从结构作为架构模式,索引服务由三大组件构成
~~~ overlord 作为主节点
~~~ middlemanager是从节点
~~~ peon用于运行一个task
二、索引服务架构图如下图所示:
三、索引服务由三部分组件组成:
### --- 索引服务由三部分组件组成
~~~ # Overlord组件
~~~ 负责创建task、分发task到middlemanager上运行,
~~~ 为task创建锁以及跟踪task运行状态并反馈给用户
~~~ # MiddleManager组件
~~~ 作为从节点,负责接收主节点分配的任务,
~~~ 然后为每个task启动一个独立的JVM进程来完成具体的任务
~~~ # Peon(劳工)组件
~~~ 由middlemanager启动的一个进程用于运行一个task任务
### --- 索引服务架构与 Yarn 的架构类似:
~~~ Overlaod => ResourceManager,负责集群资源管理和任务分配
~~~ MiddleManager => NodeManager,负责接受任务和管理本节点的资源
~~~ Peon => Container,执行节点上具体的任务
### --- Task类型有很多,包括:
~~~ # index hadoop task:
~~~ Hadoop索引任务,利用Hadoop集群执行MapReduce任务以完成segment数据文件的创建,
~~~ 适合体量比较大的segments数据文件的创建任务
~~~ # index kafka task:
~~~ 用于Kafka数据的实时摄入,通过Kafka索引服务可以在Overlord上配置一个KafkaSupervisor,
~~~ 通过管理Kafka索引任务的创建和生命周期来完成 Kafka 数据的摄取
~~~ # merge task:
~~~ 合并索引任务,将多个segments数据文件按照指定的聚合方法合并为一个segments数据文件
~~~ # kill task :
~~~ 销毁索引任务,将执行时间范围内的数据从Druid集群的深度存储中删除