2012-06-06 105 views
4

我有一個java程序作爲服務運行,該程序必須向cassandra集羣插入50k行/秒(1行有25列)。Cassandra批量插入解決方案

我的集羣包含3個節點,1個節點有4個cpu核心(核心i5 2.4 ghz),4 gb ram。

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

任何人都建議另一種解決方案。是否有cassandra支持內部批量插入(不使用Thrift)。

回答

1

Astyanax是Apache Cassandra的高級Java客戶端。 Apache Cassandra是一個高度可用的列式數據庫。 Astyanax目前正在Netflix上使用。通常情況下,問題的解決速度與經常發佈的版本一樣快。

https://github.com/Netflix/astyanax

1

我有好運氣創建sstables並直接加載它們。有一個包含在發行版中的工具以及一個JMX接口。您可以使用SSTableSimpleUnsortedWriter類創建sstables。

詳情here

+0

感謝您的幫助!我現在試試看:D:D –

1

向卡桑德拉批量插入數據的最快方法是sstableloader Cassandra在0.8以後提供的實用程序。對於您必須首先創建sstables這是可能的SSTableSimpleUnsortedWriter更多關於這被描述here

另一種更快的方式是唱衰BulkoutputFormat爲hadoop.With這一點,我們可以編寫Hadoop的工作將數據加載到cassandra.See更多這bulkload to cassandra with hadoo

+0

感謝您的幫助!我現在試試看:D:D –