当 apache druid 已经有超过 100 万个段时插入新段

Insert new segment when apache druid already have more them 1M segments

我有一个 apache druid 集群设置,其中包含 1 个主服务器、2 个数据服务器和 1 个查询服务器,以及作为深层存储的 apache cassandra。现在我的德鲁伊设置已经有超过 100 万个段和 15 个不同的数据源。 每当我尝试插入新数据时,有时都会出现 OutofMemeory 异常。

我想做的是,当我想插入新数据时,我想标记一些段unused。这是问题所在,根据 druid doc 如果我将任何段标记为未使用德鲁伊将从深度存储中删除它。我不想要那个。插入新数据后,我想重新启用 unused 段。我该怎么做?

  1. Druid 不会从深层存储中删除 unused 段,直到您 运行 a kill task。阅读 here

所以基本上,有 2 个步骤可以永久删除特定段:disable segment 通过 segment-intervalsegmentId 然后 post a kill task on druid server

  1. 只要一个段只被禁用,就可以重新加载。重新加载未使用的段 post 与德鲁伊服务器上的以下任务类似:
curl -X 'POST' -H 'Content-Type:application/json' -d '{ "interval" :
"interval-of-segment" }' http://localhost:8081/druid/coordinator/v1/datasources/datasourcename/markUsed