将数据从 Historical Node Memory 刷新到 Deep Storage
Flush data from Historical Node Memory to Deep Storage
我最初设置了一个德鲁伊集群,其中有 2 个历史节点,每个节点有 30gb 内存。 2 个中间管理器节点,一个具有协调器和霸主的节点 运行,1 个代理节点。
成功 运行 3-4 周后,我看到我的任务即使在 window 期之后仍停留在 运行 状态。然后我碰巧添加了一个具有相同配置的历史节点,这导致我的任务再次正常运行。
这意味着接收到德鲁伊的所有数据都将进入内存,我将不得不继续添加历史节点。
有没有办法将一些数据从内存刷新到深层存储,并且只要对那组数据触发查询,它就应该加载到内存中?
我的每个历史节点都有 30GB RAM。配置:
druid.processing.buffer.sizeBytes=1073741824
druid.segmentCache.locations=[{"path":"var/druid/segment-cache","maxSize":32212254720}]
druid.port=7080
druid.service=druid/historical
druid.server.maxSize=100000000000
druid.server.http.numThreads=50
druid.processing.numThreads=5
druid.query.groupBy.maxResults=10000000
druid.query.groupBy.maxOnDiskStorage=10737418240
好吧,正如问题中提到的,我的问题是我必须每隔几天启动一个新节点,不知道为什么。根本原因是每个历史节点上的磁盘 space。
本质上,即使 druid 将数据推送到深度存储,它也会将所有数据保存在本地历史节点上。
所以你只能在所有历史节点中存储等于 'druid.server.maxSize' 配置总和的数据。
如果不想横向扩展,可以增加历史节点的磁盘,增加这个config的值,重启历史节点。
我最初设置了一个德鲁伊集群,其中有 2 个历史节点,每个节点有 30gb 内存。 2 个中间管理器节点,一个具有协调器和霸主的节点 运行,1 个代理节点。
成功 运行 3-4 周后,我看到我的任务即使在 window 期之后仍停留在 运行 状态。然后我碰巧添加了一个具有相同配置的历史节点,这导致我的任务再次正常运行。 这意味着接收到德鲁伊的所有数据都将进入内存,我将不得不继续添加历史节点。
有没有办法将一些数据从内存刷新到深层存储,并且只要对那组数据触发查询,它就应该加载到内存中? 我的每个历史节点都有 30GB RAM。配置:
druid.processing.buffer.sizeBytes=1073741824
druid.segmentCache.locations=[{"path":"var/druid/segment-cache","maxSize":32212254720}]
druid.port=7080
druid.service=druid/historical
druid.server.maxSize=100000000000
druid.server.http.numThreads=50
druid.processing.numThreads=5 druid.query.groupBy.maxResults=10000000
druid.query.groupBy.maxOnDiskStorage=10737418240
好吧,正如问题中提到的,我的问题是我必须每隔几天启动一个新节点,不知道为什么。根本原因是每个历史节点上的磁盘 space。 本质上,即使 druid 将数据推送到深度存储,它也会将所有数据保存在本地历史节点上。 所以你只能在所有历史节点中存储等于 'druid.server.maxSize' 配置总和的数据。 如果不想横向扩展,可以增加历史节点的磁盘,增加这个config的值,重启历史节点。