我正在尝试在不同网络上的两个群集之间迁移数据。端口:7001、7199、9046、9160在它们之间是开放的。但是端口:7000未打开。当我运行sstableloader命令时,出现以下异常。
命令:
:/a/cassandra/bin# ./sstableloader -d 192.168.98.99/abc/cassandra/data/apps/ads-0fdd9ff0a7d711e89107ff9c3da22254
Error/Exception:
Could not retrieve endpoint ranges:
org.apache.thrift.transport.TTransportException: Frame size (352518912) larger than max length (15728640)!
java.lang.RuntimeException: Could not retrieve endpoint ranges:
at org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:342)
at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:156)
at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:109)
Caused by: org.apache.thrift.transport.TTransportException: Frame size (352518912) larger than max length (15728640)!
at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137)
at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429)
at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318)
at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219)
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
at org.apache.cassandra.thrift.Cassandra$Client.recv_describe_partitioner(Cassandra.java:1368)
at org.apache.cassandra.thrift.Cassandra$Client.describe_partitioner(Cassandra.java:1356)
at org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:304)
... 2 more
在yaml文件中,thrift_framed_transport_size_in_mb:
设置为15
。因此,我将其值增加到40。即使在yaml文件中增加了thrift_framed_transport_size_in_mb:
之后,我仍然遇到相同的错误。
这可能是解决方案。有人可以帮我吗?
答案 0 :(得分:0)
这是在安全集群上出现2.1.x sstableloader头痛的最初错误。
在我们的情况下,我们首先忘记添加:
-tf org.apache.cassandra.thrift.SSLTransportFactory
以及密钥库/信任库参数。
然后我们遇到了这个问题:
Cassandra sstableloader with ssl : PKIX error
然后它起作用了。这是针对启用节点间和客户端加密的群集