2013-08-15 4 views
2

Je suis nouveau à utiliser astyanax connexion à cassandra (1.2.8). J'ai téléchargé astyanax depuis [https://github.com/Netflix/astyanax] et cassandra depuis [http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.8/apache-cassandra -1.2.8-bin.tar.gz]. Tout est installé/construit en fonction des instructions et conserve les paramètres par défaut (comme conf/cassandra.yaml). Maintenant, j'essaie d'exécuter l'exemple de code [https://github.com/Netflix/astyanax/blob/master/astyanax-examples/src/main/java/com/netflix/astyanax/examples/AstCQLClient.java], et un erreur dégoûtant ne cesse de me déranger (montré à éclipse):org.apache.thrift.transport.TTransportException: impossible à lire. Le côté à distance est fermé

causée par: com.netflix.astyanax.connectionpool.exceptions.PoolTimeoutException: PoolTimeoutException: [host = 127.0.0.1 (127.0.0.1): 9160, temps d'attente = 5021 (5021), des tentatives = 1] a expiré attente de connexion

Comme activer le mode de débogage de cassandra, le dessous est affiché sur le terminal:

DEBUG 17: 06: 48,968 Une erreur de transport d'épargne s'est produite pendant le traitement du message. org.apache.thrift.transport.TTransportException: Impossible de lire. Le côté à distance s'est fermé. J'ai essayé de lire 4 octets, mais seulement 0 octets. (Cela indique souvent une erreur interne côté serveur. Veuillez vérifier les journaux de votre serveur.) at org.apache.thrift.transport.TTransport.readAll (TTransport.java:86) at org.apache.thrift.protocol .TBinaryProtocol.readAll (TBinaryProtocol.java:378) à org.apache.thrift.protocol.TBinaryProtocol.readI32 (TBinaryProtocol.java:297) à org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin (TBinaryProtocol.java:204) à org.apache.thrift.TBaseProcessor.process (TBaseProcessor.java:22) à org.apache.cassandra.thrift.CustomTThreadPoolServer $ WorkerProcess.run (CustomTThreadPoolServer.java:199) à java.util.concurrent.ThreadPoolExecutor .runWorker (ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor $ Worker.run (Thread PoolExecutor.java:615) à java.lang.Thread.run (Thread.java:724)

Juste pour souligner, je ne change rien à cassandra.yaml (en fait je ne sais pas ce que ils veulent dire); toutes les libs d'astyanax et de cassandra-1.2.8 sont toutes importées dans le projet java. Je suppose que le problème est dû au fait que les connexions vont s'arrêter quand j'essaye de vider à travers la transformation de trame ... Je suis un noob à la base de données. J'apprécie à toutes les aides!

ps. J'attends sur stackoverflow. Si des logs vous devez vérifier (s'il vous plaît donnez-moi aussi le répertoire pour le trouver, je suis noob> _ <), dites juste et je vais le chercher. Merci beaucoup!!

+0

Une résolution? Je vois la même chose. – user359996

Répondre

0

Même s'il s'agit d'une vieille question et je ne sais pas si ma suggestion aidera quelqu'un, mais j'ai fait face à la même erreur et voici comment je l'ai résolu. Espérons que cela aidera une autre âme pauvre. Je voyais la même erreur "ne peut pas lire le côté distant a fermé", mais j'utilisais csharp, l'espace de noms Apache.Cassandra et Thrift.dll.

Ce qui suit est un extrait de travail,

TSocket socket = null; 
    TTransport transport = null; 

    socket = new TSocket("localhost", 9160); 


    transport = new TFramedTransport(socket); 
    TProtocol protocol = new TBinaryProtocol(transport); 
    CassandraClient cassandraClient = new CassandraClient(protocol); 
    cassandraClient.InputProtocol.Transport.Open(); 

L'astuce est d'utiliser cassandraClient.InputProtocol.Transport.Open(); plutôt que transport.open()

Questions connexes