Создать семейство счетчиков в Кассандре? - PullRequest
0 голосов
/ 25 сентября 2019

Я использую Cassandra-2.0.10 и API Hector.

Я пытался:

    public static void createCounterColumnFamily(Keyspace keyspace, String ccfName) {   
    Mutator<String> mutator = HFactory.createMutator(keyspace,StringSerializer.get());
    mutator.addCounter("salary", ccfName, HFactory.createCounterColumn("salary", 10L));
    mutator.execute();}

Но я получаю это исключение:

Exception in thread "main" me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:unconfigured columnfamily counter_column_family_1)
    at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:45)
    at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:265)
    at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecuteOperation(ExecutingKeyspace.java:113)
    at me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:243)
    at com.cassandra.practice.CounterColumnFamily.createCounterColumnFamily(CounterColumnFamily.java:18)
    at com.cassandra.practice.Bootstrapper.main(Bootstrapper.java:33)
Caused by: InvalidRequestException(why:unconfigured columnfamily counter_column_family_1)
    at org.apache.cassandra.thrift.Cassandra$batch_mutate_result.read(Cassandra.java:20833)
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
    at org.apache.cassandra.thrift.Cassandra$Client.recv_batch_mutate(Cassandra.java:964)
    at org.apache.cassandra.thrift.Cassandra$Client.batch_mutate(Cassandra.java:950)
    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:104)
    at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:258)
    ... 4 more

Я что-то упустил?

1 Ответ

2 голосов
/ 25 сентября 2019

Вам нужно явно создать семейство столбцов и пространство клавиш, прежде чем вы сможете вставить данные.

Это говорит о том, что API Гектора устарел более пяти лет назад, а версия Cassandra, которую вы используете, так же далеко позади.Что еще более важно, Thrift API годами полностью устарел и уже был удален из транка в предстоящем выпуске 4.0.

Пожалуйста, переключитесь на 3.11.4 Cassandra, доступную здесь: http://cassandra.apache.org/download/

И для использования CQL и драйвера Java для таких доступных здесь: https://github.com/datastax/java-driver/tree/3.x/manual

Излюбопытство, как вы столкнулись с версиями, которые вы используете в настоящее время?

...