【发布时间】:2018-11-01 21:47:26
【问题描述】:
Druid 集群有 2 个节点,1 个节点带有代理服务,其他节点执行剩余的 4 个 druid 服务(Coordinator、Overload、Historical、MiddleManager)。 EC2 机器类型为 t2.xlarge。
我的 Druid 摄取数据的目标是 1 个数据源中的 1.5 亿条记录,以测试 Druid 的消费能力,以秒级响应。
问题
我已将 10M 的记录加载到 Druids 数据源中。在此基准测试之后,由于中间管理器服务,我面临 Java.io.IOException: No Space Left on device。谁能指导我使用合适的配置来加载这个大块中的数据。
我尝试了以下选项作为 Hit & Try 策略:
- 增加中层管理人员和历史服务的 JVM 内存
- 历史节点的缓冲区大小增加到 300 GB
- 重启 EC2 机器并重启正在运行的服务
【问题讨论】:
-
分享你当前的 jvm 中间管理配置和摄取任务,段的持续时间是多少?
-
@mdeora 历史节点 JVM -Xms8g -Xmx8g -XX:MaxDirectMemorySize=1280m MiddleManager: -Xms64m -Xmx64m 由于缓冲区大小和避免缓冲区,我已将中间管理器的线程数从 27 减少到 9摄取时出现内存错误
-
什么是段粒度?
-
分段粒度为“DAY”,因为我正在加载 30 天的数据,目标分区大小为 5000000。数据源包含 54 列。
-
30天的数据文件总大小是多少?
标签: java amazon-ec2 memory-management druid