私の構成
2 つのノードを持つクラスター:
ノード 1: ハードウェア: Intel Xeon 2.83 GHz (4 コア)、24GB RAM、Dell VIRTUAL DISK SCSI 500GB
システム: Windows Server 2008 R2 x64
Java バージョン: 7 update 4 x64
Apache Cassandra バージョン: 1.1.1ノード 2: ハードウェア: Intel Xeon 2.83 GHz (4 コア)、8GB RAM、Dell VIRTUAL DISK SCSI 500GB
システム: Windows Server 2008 R2 x64
Java バージョン: 7 update 4 x64
Apache Cassandra バージョン: 1.1.1
Cassandra サーバー構成:
heap size: 4 GB
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "xxx.xxx.xxx.10,xxx.xxx.xxx.11"
listen_address: xxx.xxx.xxx.10
rpc_address: 0.0.0.0
rpc_port: 9160
rpc_timeout_in_ms: 20000
endpoint_snitch: PropertyFileSnitch
cassandra-topology.properties
xxx.xxx.xxx.10=datacenter1:rack1
xxx.xxx.xxx.11=datacenter1:rack1
default=datacenter1:rack1
問題
CLI コマンドを使用して、キースペースと列ファミリーを処理しました。
create keyspace testks with placement_strategy = 'org.apache.cassandra.locator.NetworkTopologyStrategy' and strategy_options = {datacenter1:2};
use testks;
create column family testcf;
次に、Hector クライアントを使用して作成された列ファミリーに 50 000 000 行を挿入する Java アプリケーションを開始しました。クライアントはノード 1 に接続されます。約 30 秒後 (160,000 行が挿入されます)、ノード 1 の Cassandra サーバーは例外をスローします。
ERROR [COMMIT-LOG-ALLOCATOR] 2012-06-13 10:26:38,393 AbstractCassandraDaemon.java (line 134) Exception in thread Thread[COMMIT-LOG-ALLOCATOR,5,main]
java.io.IOError: java.io.IOException: Rename from c:\apache-cassandra\storage\commitlog\CommitLog-7345742389552.log to 7475933520374 failed
at org.apache.cassandra.db.commitlog.CommitLogSegment.<init>(CommitLogSegment.java:127)
at org.apache.cassandra.db.commitlog.CommitLogSegment.recycle(CommitLogSegment.java:204)
at org.apache.cassandra.db.commitlog.CommitLogAllocator$2.run(CommitLogAllocator.java:166)
at org.apache.cassandra.db.commitlog.CommitLogAllocator$1.runMayThrow(CommitLogAllocator.java:95)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException: Rename from c:\apache-cassandra\storage\commitlog\CommitLog-7345742389552.log to 7475933520374 failed
at org.apache.cassandra.db.commitlog.CommitLogSegment.<init>(CommitLogSegment.java:105)
... 5 more
その後、数秒後にノード 2 の Cassandra サーバーが同じ例外をスローします。
ERROR [COMMIT-LOG-ALLOCATOR] 2012-06-14 10:26:44,005 AbstractCassandraDaemon.java (line 134) Exception in thread Thread[COMMIT-LOG-ALLOCATOR,5,main]
java.io.IOError: java.io.IOException: Rename from c:\apache-cassandra\storage\commitlog\CommitLog-7320337904033.log to 7437675489307 failed
at org.apache.cassandra.db.commitlog.CommitLogSegment.<init>(CommitLogSegment.java:127)
at org.apache.cassandra.db.commitlog.CommitLogSegment.recycle(CommitLogSegment.java:204)
at org.apache.cassandra.db.commitlog.CommitLogAllocator$2.run(CommitLogAllocator.java:166)
at org.apache.cassandra.db.commitlog.CommitLogAllocator$1.runMayThrow(CommitLogAllocator.java:95)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Rename from c:\apache-cassandra\storage\commitlog\CommitLog-7320337904033.log to 7437675489307 failed
at org.apache.cassandra.db.commitlog.CommitLogSegment.<init>(CommitLogSegment.java:105)
... 5 more
その後、私のアプリケーションはそれ以上データを挿入できません。Hector は Thrift から TimedOutException を取得します。
Thread-4 HConnectionManager.java 306 012-06-14 10:12:56,034 HConnectionManager operateWithFailover WARN %Could not fullfill request on this host CassandraClient<xxx.xxx.xxx.10:9160-10>
Thread-4 HConnectionManager.java 307 2012-06-14 10:12:56,034 HConnectionManager operateWithFailover WARN %Exception:
me.prettyprint.hector.api.exceptions.HTimedOutException: TimedOutException()
at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:35)
at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:264)
at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecuteOperation(ExecutingKeyspace.java:97)
at me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:243)
at patrycjusz.nosqltest.db.cassandra.CassandraHectorDbAdapter.commitTransaction(CassandraDbAdapter.java:63)
at patrycjusz.nosqltest.DbTest.insertData(DbTest.java:459)
at patrycjusz.nosqltest.gui.InsertPanel.executeTask(NePanel.java:154)
at patrycjusz.nosqltest.gui.InsertPanel$1.run(NePanel.java:141)
at java.lang.Thread.run(Unknown Source)
Caused by: TimedOutException()
at org.apache.cassandra.thrift.Cassandra$batch_mutate_result.read(Cassandra.java:20269)
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
at org.apache.cassandra.thrift.Cassandra$Client.recv_batch_mutate(Cassandra.java:922)
at org.apache.cassandra.thrift.Cassandra$Client.batch_mutate(Cassandra.java:908)
at me.prettyprint.cassandra.model.MutatorImpl$3.execute(MutatorImpl.java:246)
at me.prettyprint.cassandra.model.MutatorImpl$3.execute(MutatorImpl.java:243)
at me.prettyprint.cassandra.service.Operation.executeAndSetResult(Operation.java:103)
at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:258)
... 8 more
どうすれば解決できますか?多分私は何か間違ったことをしていますか?
よろしく、パトリチュス