Apache Druid使用Apache ZooKeeper 来管理整个集群状态。通过ZK来进行的操作有:
我们使用 Curator LeadershipLatch 进行Leader选举:
${druid.zk.paths.coordinatorPath}/_COORDINATOR
announcementsPath
和 servedSegmentsPath
这两个参数用于这个功能。
所有的 Historical 进程都将它们自身发布到 announcementsPath
, 具体来说它们将在以下路径创建一个临时的ZNODE:
${druid.zk.paths.announcementsPath}/${druid.host}
这意味着Historical节点可用。它们也将随后创建一个ZNODE:
${druid.zk.paths.servedSegmentsPath}/${druid.host}
当它们加载段时,它们将在以下路径附着的一个临时的ZNODE:
${druid.zk.paths.servedSegmentsPath}/${druid.host}/_segment_identifier_
然后,Coordinator 和 Broker 之类的进程可以监视这些路径,以查看哪些进程当前正在为哪些段提供服务。
loadQueuePath
参数用于这个功能。
当 Coordiantor 决定一个 Historical 进程应该加载或删除一个段时,它会将一个临时znode写到:
${druid.zk.paths.loadQueuePath}/_host_of_historical_process/_segment_identifier
这个znode将包含一个payload,它向Historical进程指示它应该如何处理给定的段。当Historical进程完成任务时,它将删除znode,以便向Coordinator表示它已经完成处理。
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )