[英]Could not retrieve endpoint ranges: java.lang.IllegalArgumentException
I am tyring to load sstables to cassandra using sstableloader utility. 我打算使用sstableloader实用程序将sstables加载到cassandra。 But I am getting the following error.
但是我收到以下错误。
> 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
the command I am using to load the sstable is 我用来加载sstable的命令是
$bin/sstableloader -d nodename -u username -pw password path/to/sstable/keyspacename/tablename
this was working a few days back .I am not sure whats changed and how to debug it ? 这在几天前就可以了。我不确定发生了什么更改以及如何对其进行调试? I am using datastax.
我正在使用datastax。 I am loading the sstable from the same node which is in the cluster.ie my source and destination node are same.
我正在从集群中的同一节点加载sstable。即,我的源节点和目标节点相同。 Has someone seen this error before ?
有人以前见过这个错误吗? Cassandra version : 2.1 Any Help is appreciated.
Cassandra版本:2.1非常感谢您的帮助。
The exception in the stack trace comes from this piece of code: 堆栈跟踪中的异常来自以下代码:
if (version >= Server.VERSION_3)
{
int size = input.getInt();
if (size < 0)
return null;
return ByteBufferUtil.readBytes(input, size); // HERE !
}
I'm wondering if you're loading sstables that have been generated by a Cassandra 2.1 or an older version .... Because the issue seems to be at the byte-encoding level. 我想知道您是否正在加载由Cassandra 2.1或更旧版本生成的sstables。...因为问题似乎在字节编码级别。
There is also a possibility that your SSTables are corrupted. 您的SSTables也可能已损坏。
How did you get those sstables ? 你是怎么得到这些稳定的? From a copy of another Cassandra instance ?
来自另一个Cassandra实例的副本? Generated by CQLSSTableWriter ?
由CQLSSTableWriter生成?
I had this problem again, so debugged it a little for the root cause. 我又遇到了这个问题,因此从根本上调试了一下。 The problem is if at any time you have altered your cassandra table by dropping some column.
问题是,是否在任何时候都通过删除某些列来更改了cassandra表。 it triggers a bug for sstableLoader.
它会触发sstableLoader的错误。 That why dropping the table and creating it again works.
这就是为什么删除表并再次创建它的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.