0

我正在针对特定用例评估 Apache Ignite。我正在尝试将 50 GB 的数据加载到 Ignite 中的缓存中。我有 CSV 格式的数据。目前,我正在以 Java Bean 的形式读取 Java 程序中的数据,并使用 Ignite 中的流式 API 将 bean 添加到缓存中。我正在寻找替代方法/选项。

  1. Ignite 是否有任何开箱即用的功能可用于以并行方式批量加载 CSV 文件中的数据(读取 CSV 和写入缓存)?
  2. 在 Java 客户端程序中使用流媒体 API 加载数据时,我看到流媒体对象在添加了大约 600MB 数据后关闭,并导致客户端节点崩溃并随后其他节点崩溃。处理 500MB 数据时,数据加载工作正常。我在每台服务器中使用 3 个物理节点集群和 2 个 ignite 节点实例。

任何建议都会有所帮助。

4

2 回答 2

0
  1. 没有开箱即用的 CSV 流媒体。
  2. 看起来在 500MB 之后你的内存就用完了。你能用 VisualVM 检查你的 JVM 内存利用率,如果你的内存不足,可以添加更大的 -Xmx 值吗?
于 2015-07-17T05:36:30.377 回答
0

Apache Ignite 是内存缓存。你有 50Gb+ 内存吗?

我想提出另一种解决方案。将数据从 CSV 加载到任何数据库,例如 H2(为关键字段添加索引以提高性能)。并配置 Ignite 缓存以使用链接到数据库的缓存存储 + readThrough 选项。您可以通过 cache.load() 加载一些数据(不是全部 50Gb)。

当您的应用在缓存中找不到键时,它将透明地从底层存储中获取并缓存。

您如何看待这种方法?

于 2015-08-12T16:52:43.730 回答