次のコードがあります。
StringSerializer ss = StringSerializer.get();
String cf = "TEST";
CassandraHostConfigurator conf = new CassandraHostConfigurator("localhost:9160");
conf.setCassandraThriftSocketTimeout(40000);
conf.setExhaustedPolicy(ExhaustedPolicy.WHEN_EXHAUSTED_BLOCK);
conf.setRetryDownedHostsDelayInSeconds(5);
conf.setRetryDownedHostsQueueSize(128);
conf.setRetryDownedHosts(true);
conf.setLoadBalancingPolicy(new LeastActiveBalancingPolicy());
String key = Long.toString(System.currentTimeMillis());
Cluster cluster = HFactory.getOrCreateCluster("TestCluster", conf);
Keyspace keyspace = HFactory.createKeyspace("TestCluster", cluster);
Mutator<String> mutator = HFactory.createMutator(keyspace, StringSerializer.get()); int count = 0;
while (!"q".equals(new Scanner( System.in).next())) {
try{
mutator.insert(key, cf, HFactory.createColumn("column_" + count, "v_" + count, ss, ss));
count++;
} catch (Exception e) {
e.printStackTrace();
}
}
それを使用していくつかの値を書き込むことができますが、cassandra を再起動すると失敗します。ログは次のとおりです。
TIOStreamTransport.write(TIOStreamTransport.java:145) ... 9 more [15:11:17] ERROR [HConnectionManager ] MARK HOST AS DOWN TRIGGERED for host >localhost(127.0.0.1):9160 [15:11:17] ERROR [HConnectionManager ] シャットダウン時のプールの状態: >:{localhost(127.0.0.1):9160}; IsActive?: 真; アクティブ: 1; ブロック: 0; アイドル: 15; NumBeforeExhausted: 49 [15:11:17] 情報 [ConcurrentHClientPool] シャットダウンがトリガーされました:{localhost(127.0.0.1):9160} [15:11:17] 情報 [ConcurrentHClientPool] シャットダウンが完了しました:{localhost(127.0.0.1) :9160} [15:11:17] INFO [CassandraHostRetryService] ダウンとして検出されたホストが再試行キューに追加されました: localhost(127.0.0.1):9160 [15:11:17] WARN [HConnectionManager] このホストで要求をフルフィルできませんでしたCassandraClient [15:11:17] WARN [HConnectionManager] 例外: 私。閉鎖。[15:11:17] INFO [HConnectionManager ] クライアント CassandraClient が非アクティブまたはデッド プールに解放されました。閉鎖。[15:11:17] 情報 [HConnectionManager] プールにホスト localhost(127.0.0.1):9160 を追加しました