Java (Hadoop2) kullanılarak cassandra bağlanmaya çalışıyorum ama aşağıdaki hatayıCassandra bağlantı kurulamıyor: java.lang.NoSuchMethodError: com.google.common.util.concurrent.Futures.withFallback
atıyorConnecting to IP Address 127.0.0.1:9042...
16/04/12 10:35:13 INFO core.NettyUtil: Found Netty's native epoll transport in the classpath, using it
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.util.concurrent.Futures.withFallback(Lcom/google/common /util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent /FutureFallback;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
at com.datastax.driver.core.Connection.initAsync(Connection.java:177)
at com.datastax.driver.core.Connection$Factory.open(Connection.java:731)
at com.datastax.driver.core.ControlConnection.tryConnect(ControlConnection.java:251)
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:199)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:77)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1414)
at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:393)
at cassandra.CassandraConnector.connect(CassandraConnector.java:42)
at cassandra.Main.main(Main.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
cassandra ortamı ayrıntıları inceleyin :: 127.0.0.1:9042 de test Kümesi bağlantılı
- .
- [cqlsh 5.0.1 | Cassandra 2.2.5 | CQL spec 3.3.1 | Ana protokol v4]
Kavanozlar kullanıyorum ::
- cassandra-sürücü çekirdek 3.0.0.jar
- guava-19.0.jar
- netty-all- 4.1.0.CR7.jar
denedim diğer kavanozları (guava> = 16.01, netty-all-4,0 ..., cassandra-sürücü çekirdek-2.2.0). ama her zaman az ya da çok benzer bir hata atıyor.
bağlantı kurmak için kullanılacak kod parçacığı aşağıya bakın:
public void connect(final String node, final int port)
{
this.cluster = Cluster.builder().addContactPoint(node).withPort(port)
.build();
final Metadata metadata = cluster.getMetadata();
ProtocolVersion myCurrentVersion = cluster.getConfiguration()
.getProtocolOptions()
.getProtocolVersion();
System.out.println(myCurrentVersion);
out.printf("Connected to cluster: %s\n", metadata.getClusterName());
for (final Host host : metadata.getAllHosts())
{
out.printf("Datacenter: %s; Host: %s; Rack: %s\n",
host.getDatacenter(), host.getAddress(), host.getRack());
}
session = cluster.connect();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
final CassandraConnector client = new CassandraConnector();
final String ipAddress = args.length > 0 ? args[0] : "127.0.0.1";
final int port = args.length > 1 ? Integer.parseInt(args[1]) : 9042;
out.println("Connecting to IP Address " + ipAddress + ":" + port + "...");
client.connect(ipAddress, port);
client.close();
}
Ben çünkü bazı versiyonu çatışma olabileceğini düşünüyorum, ama doğru sürümünü bulamadı. Diğer benzer iletileri kontrol ettiniz ve çözümleri denediniz (farklı kavanozlar kullanarak) ancak sorunu çözemediler Herhangi bir yardım çok takdir edilecektir.
Kullanmakta olduğunuz yapı aracını (örn. Maven), yağ küpü oluşturuyor musunuz ve YARN kullanıyor musunuz, hadoop sürümü, Cassandra versiyonu gibi daha fazla bilgi verir misiniz? –
Futures.withFallback, Guava 14.0'da tanıtıldı. Hadoop işleriniz daha eski bir sürüm kullanıyor olmalıdır. – adutra