【发布时间】:2017-06-15 23:51:18
【问题描述】:
我们每秒生成 240,000 条记录并保存在 csv 文件中。现在我们想在 Cassandra 中加载它们。
我使用了 3 种方法:
-
sstableloader : 我们生成 sstable 并使用 sstableloader 命令加载它们,但是这种方法需要很长时间才能完成,每秒行数为:15,000
-
JmxBulkLoader:这个方法比sstableloader好。行数/秒为 17,000
-
复制:不适合批量使用并在使用时崩溃
系统配置:
CPU:Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz。 56芯
内存:64 G
硬盘:1TB local for cassandra nodes and 10TB in a network drive (data files stored in this hard)
我们在这台机器上有 2 个节点。
谢谢。
【问题讨论】:
-
当您说 jmx 时,您到底是什么意思?您似乎对该主题非常了解,这几乎是(除了我不明白它是什么的 jmx )并编写自己的导入应用程序......理论上您可以直接在节点上生成 sstables 然后调用nodetool 刷新,但你所描述的几乎就是它(有趣的问题),但可能有一些我不知道的方式:)(一如既往)
-
我想保存到 Cassandra 会比保存到 CSV 文件更快。我会做什么,使用一些缓存服务,如 redis,然后将记录保存到 Cassandra。
-
@MarkoŠvaljek 我们使用 jmx 从 java 驱动程序连接到 cassandra 并将数据发送到 cassandra。
-
@Gunwant 。如果我们使用redis。因为 cassandra 负载很低,所以 ram 可能已满。而且cassandra直接写每一行很慢,所以我们写在file里
-
您能否编辑您的问题并发布磁盘上所有文件的 ls -lah、单个示例记录(如果它是一些敏感数据,请混淆)...还发布一个类的代码进行导入(你称之为 jmx 的)然后有人可能会帮助你......这个讨论目前是很多理论讨论。
标签: cassandra bulkinsert