Поле Cassandra SSTableLoader не является столбцом в этих метаданных

Я недавно обновился до cassandra версии 3.3. У меня есть программа, которая читает файл CSV и генерирует файлы SSTable с помощью CQLSSTableWriter. После создания этих файлов SSTable я использую программу SSTableLoader для потоковой передачи файлов в кластер cassandra. В написанной мной программе используются следующие зависимости maven:

<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
<version>3.3</version>

Я использовал дистрибутив cassandra от Datastax для версии 3.3, и массовая загрузка SSTables с моей машины в кластер cassandra прошла успешно. Однако недавно я перешел на использование другого дистрибутива кассандры под названием Stratio Cassandra, который поддерживает индексы Lucene.

После того, как stratio cassandra был настроен на машине, я попытался выполнить массовую загрузку SSTables в кластер stratio cassandra (используя программу sstableloader.bat из каталога Datastax (например, C: \ Program Files \ DataStax-DDC \ apache-cassandra \ bin)). Однако я получаю следующие сообщения:

flags is not a column defined in this metadata
java.lang.IllegalArgumentException: flags is not a column defined in this metadata
    at com.datastax.driver.core.ColumnDefinitions.getAllIdx(ColumnDefinitions.java:272)
    at com.datastax.driver.core.ColumnDefinitions.getFirstIdx(ColumnDefinitions.java:278)
    at com.datastax.driver.core.ArrayBackedRow.getIndexOf(ArrayBackedRow.java:83)
    at com.datastax.driver.core.AbstractGettableData.getSet(AbstractGettableData.java:217)
    at org.apache.cassandra.utils.NativeSSTableLoaderClient.createTableMetadata(NativeSSTableLoaderClient.java:172)
    at org.apache.cassandra.utils.NativeSSTableLoaderClient.fetchViews(NativeSSTableLoaderClient.java:157)
    at org.apache.cassandra.utils.NativeSSTableLoaderClient.init(NativeSSTableLoaderClient.java:93)
    at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:159)
    at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:103)

В моих таблицах и коде Java нет ссылки на столбец с названием «флаги», поэтому я не знаю, почему он вызывает эту ошибку.

Другой подход, который я выбрал, - это использовать программу sstableloader.bat из дистрибутива stratio-cassandra. Однако я получаю другое сообщение об ошибке:

Could not retrieve endpoint ranges: 
InvalidRequestException(why:unconfigured table schema_columnfamilies)
java.lang.RuntimeException: Could not retrieve endpoint ranges: 
    at org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:338)
    at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:156)
    at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:106)
Caused by: InvalidRequestException(why:unconfigured table schema_columnfamilies)
    at org.apache.cassandra.thrift.Cassandra$execute_cql3_query_result$execute_cql3_query_resultStandardScheme.read(Cassandra.java:50297)
    at org.apache.cassandra.thrift.Cassandra$execute_cql3_query_result$execute_cql3_query_resultStandardScheme.read(Cassandra.java:50274)
    at org.apache.cassandra.thrift.Cassandra$execute_cql3_query_result.read(Cassandra.java:50189)
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
    at org.apache.cassandra.thrift.Cassandra$Client.recv_execute_cql3_query(Cassandra.java:1734)
    at org.apache.cassandra.thrift.Cassandra$Client.execute_cql3_query(Cassandra.java:1719)
    at org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:317)
    ... 2 more

Таким образом, я могу успешно загрузить данные в дистрибутив Datastax Cassandra 3.3, однако я не могу применить тот же процесс массовой загрузки SSTables к другому дистрибутиву Cassandra, а именно: Stratio.

Я не сталкивался с этой проблемой раньше, и есть ограниченные статьи по этому поводу.

Я был бы признателен, если бы кто-нибудь мог указать мне, предоставить мне какие-либо решения, чтобы попытаться или указать мне правильное направление о том, как я могу успешно загрузить SSTables в Stratio cassandra.

Большое спасибо,


person rm12345    schedule 09.03.2016    source источник


Ответы (1)


Я не знаю насчет stratio, но в CASSANDRA есть ошибка (CASSANDRA-11275), что было исправлено недавно. Если в вашей схеме есть материализованное представление, возникает ошибка.

Исправление будет выпущено в версии 3.5, которая выйдет в следующем месяце.

Кроме того, второе исключение указывает на то, что версия Stratio Cassandra несовместима с Apache Cassandra 3.0+.

Исключение составляет why:unconfigured table schema_columnfamilies, который больше не используется в Cassandra 3.0+. (Заменяется на system_schema.tables.)

person yukim    schedule 09.03.2016