无法检索端点范围:java.lang.IllegalArgumentException
Could not retrieve endpoint ranges: java.lang.IllegalArgumentException
我正在尝试使用 sstableloader 实用程序将 sstables 加载到 cassandra。但是我收到以下错误。
> java.lang.IllegalArgumentException
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: java.lang.IllegalArgumentException
at java.nio.Buffer.limit(Buffer.java:275)
at org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:543)
at org.apache.cassandra.serializers.CollectionSerializer.readValue(CollectionSerializer.java:124)
at org.apache.cassandra.serializers.MapSerializer.deserializeForNativeProtocol(MapSerializer.java:101)
at org.apache.cassandra.serializers.MapSerializer.deserializeForNativeProtocol(MapSerializer.java:30)
at org.apache.cassandra.serializers.CollectionSerializer.deserialize(CollectionSerializer.java:50)
at org.apache.cassandra.db.marshal.AbstractType.compose(AbstractType.java:68)
at org.apache.cassandra.cql3.UntypedResultSet$Row.getMap(UntypedResultSet.java:287)
at org.apache.cassandra.config.CFMetaData.fromSchemaNoTriggers(CFMetaData.java:1824)
at org.apache.cassandra.config.CFMetaData.fromThriftCqlRow(CFMetaData.java:1117)
at org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:330)
... 2 mor
我用来加载 sstable 的命令是
$bin/sstableloader -d nodename -u username -pw password path/to/sstable/keyspacename/tablename
这是几天前的工作。我不确定发生了什么变化以及如何调试它?
我正在使用数据税。
我正在从 cluster.i.e 中的同一节点加载 sstable。e 我的源节点和目标节点相同。
有人以前见过这个错误吗?
卡桑德拉版本:2.1
感谢任何帮助。
堆栈跟踪中的异常来自这段代码:
if (version >= Server.VERSION_3)
{
int size = input.getInt();
if (size < 0)
return null;
return ByteBufferUtil.readBytes(input, size); // HERE !
}
我想知道您是否正在加载由 Cassandra 2.1 或更旧版本生成的 sstables...。因为问题似乎在 byte-encoding 级别。
也有可能您的 SSTables 已损坏。
你是怎么得到这些 sstables 的?来自另一个 Cassandra 实例的副本?由 CQLSSTableWriter 生成 ?
我又遇到了这个问题,所以稍微调试了一下根源。问题是,如果您在任何时候通过删除某些列来更改您的 cassandra table。它会触发 sstableLoader 的错误。这就是为什么删除 table 并重新创建它的原因。
我正在尝试使用 sstableloader 实用程序将 sstables 加载到 cassandra。但是我收到以下错误。
> java.lang.IllegalArgumentException
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: java.lang.IllegalArgumentException
at java.nio.Buffer.limit(Buffer.java:275)
at org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:543)
at org.apache.cassandra.serializers.CollectionSerializer.readValue(CollectionSerializer.java:124)
at org.apache.cassandra.serializers.MapSerializer.deserializeForNativeProtocol(MapSerializer.java:101)
at org.apache.cassandra.serializers.MapSerializer.deserializeForNativeProtocol(MapSerializer.java:30)
at org.apache.cassandra.serializers.CollectionSerializer.deserialize(CollectionSerializer.java:50)
at org.apache.cassandra.db.marshal.AbstractType.compose(AbstractType.java:68)
at org.apache.cassandra.cql3.UntypedResultSet$Row.getMap(UntypedResultSet.java:287)
at org.apache.cassandra.config.CFMetaData.fromSchemaNoTriggers(CFMetaData.java:1824)
at org.apache.cassandra.config.CFMetaData.fromThriftCqlRow(CFMetaData.java:1117)
at org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:330)
... 2 mor
我用来加载 sstable 的命令是
$bin/sstableloader -d nodename -u username -pw password path/to/sstable/keyspacename/tablename
这是几天前的工作。我不确定发生了什么变化以及如何调试它? 我正在使用数据税。 我正在从 cluster.i.e 中的同一节点加载 sstable。e 我的源节点和目标节点相同。 有人以前见过这个错误吗? 卡桑德拉版本:2.1 感谢任何帮助。
堆栈跟踪中的异常来自这段代码:
if (version >= Server.VERSION_3)
{
int size = input.getInt();
if (size < 0)
return null;
return ByteBufferUtil.readBytes(input, size); // HERE !
}
我想知道您是否正在加载由 Cassandra 2.1 或更旧版本生成的 sstables...。因为问题似乎在 byte-encoding 级别。
也有可能您的 SSTables 已损坏。
你是怎么得到这些 sstables 的?来自另一个 Cassandra 实例的副本?由 CQLSSTableWriter 生成 ?
我又遇到了这个问题,所以稍微调试了一下根源。问题是,如果您在任何时候通过删除某些列来更改您的 cassandra table。它会触发 sstableLoader 的错误。这就是为什么删除 table 并重新创建它的原因。