Cassandra散装插入溶液

时间:2012-06-06 08:02:14

标签: cassandra hector

我有一个java程序作为服务运行,这个程序必须向cassandra集群插入50k行/秒(1行有25列)。

我的群集包含3个节点,1个节点有4个cpu核心(核心i5 2.4 ghz),4 gb ram。

我使用了Hector api,多线程,批量插入但性能太低(约25k行/秒)。

任何人都建议了另一个解决方案。 cassandra是否支持内部批量插入(不使用Thrift)。

3 个答案:

答案 0 :(得分:1)

Astyanax是Apache Cassandra的高级Java客户端。 Apache Cassandra是一个高度可用的面向列的数据库。 Astyanax目前在Netflix上使用。问题通常尽可能快地修复,并且经常发布。

https://github.com/Netflix/astyanax

答案 1 :(得分:1)

我很幸运能够创建sstables并直接加载它们。有一个 sstableloader 分发中包含的工具以及JMX接口。您可以使用 SSTableSimpleUnsortedWriter 类创建sstables。

详情here

答案 2 :(得分:1)

将数据批量插入Cassandra的最快方法是 sstableloader Cassandra在0.8以后提供的实用程序。为此,您必须首先创建sstables,这可以通过 SSTableSimpleUnsortedWriter 进行更多有关此问题的描述here

另一个更快的方法是Cassandras BulkoutputFormat for hadoop。这样我们就可以编写Hadoop作业来将数据加载到cassandra.See more on this bulkload to cassandra with hadoo