将数据从历史节点内存刷新到深度存储

时间:2018-07-19 05:31:56

标签: druid

我最初设置了一个德鲁伊集群,该集群包含2个历史节点,每个节点的内存为30gb。 2个中层管理器节点,一个运行协调器和霸主的节点,1个代理节点。

成功运行3-4周后,我发现即使在窗口期过后,我的任务仍保持运行状态。然后,我偶然又添加了一个具有相同配置的历史节点,这导致我的任务再次正常运行。 这意味着将所有提取到德鲁伊的数据都存储到内存中,而我将不得不继续添加历史节点。

是否有一种方法可以将某些数据从内存刷新到深度存储,并且每当对该数据集进行查询时,都应该将其加载到内存中? 我的每个历史节点都有30GB RAM。配置:

druid.processing.buffer.sizeBytes = 1073741824

druid.segmentCache.locations = [{“ path”:“ var / druid / segment-cache”,“ maxSize”:32212254720}]

druid.port = 7080

druid.service =德鲁伊/历史

druid.server.maxSize = 100000000000

druid.server.http.numThreads = 50

druid.processing.numThreads = 5 druid.query.groupBy.maxResults = 10000000

druid.query.groupBy.maxOnDiskStorage = 10737418240

1 个答案:

答案 0 :(得分:0)

就像问题中提到的那样,我的问题是我必须每隔几天启动一个新节点,但不确定为什么。根本原因是每个历史节点上的磁盘空间。 本质上,即使德鲁伊将数据推入深度存储,它也将所有数据都保留在本地历史节点上。 因此,您只能在所有历史节点中存储等于“ druid.server.maxSize”配置总和的数据。 如果您不希望水平缩放,则可以增加历史节点的磁盘并增加此配置的值,然后重新启动历史节点。