python cassandra cql3

python cassandra driver install



Cuando cassandra-driver estaba ejecutando la consulta, cassandra-driver devolvió el error OperationTimedOut (2)

Según los documentos, este error indica que la operación tardó más de lo especificado en el lado del cliente. El error es generado por el controlador, no por Cassandra. Todavía estoy buscando una manera de manejar este error yo mismo.

http://datastax.github.io/python-driver/api/cassandra.html#cassandra.OperationTimedOut

Yo uso el script de python, que pasa a la consulta por lotes de cassandra, así:

query = ''BEGIN BATCH '' + ''insert into ... ; insert into ... ; insert into ...; '' + '' APPLY BATCH;'' session.execute(query)



Funciona en algún momento, pero en unos 2 minutos después del inicio, los scripts fallan e imprimen:

Traceback (most recent call last):<br> File "/home/fervid/Desktop/cassandra/scripts/parse_and_save_to_cassandra.cgi", line 127, in <module><br> session.execute(query)<br> File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 1103, in execute<br> result = future.result(timeout)<br> File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 2475, in result<br> raise OperationTimedOut(errors=self._errors, last_host=self._current_host)<br> cassandra.OperationTimedOut: errors={}, last_host=127.0.0.1<br> <br> <br>

Cambié el tiempo de espera de cassandra.yaml a:
read_request_timeout_in_ms: 15000
range_request_timeout_in_ms: 20000
write_request_timeout_in_ms: 20000
cas_contention_timeout_in_ms: 10000
request_timeout_in_ms: 25000


Luego reinicié Cassandra, pero no ayudó. ¡El error ocurre una y otra vez!

Líneas en el registro cerca del momento en que el script falló:

INFO [BatchlogTasks: 1] 2014-06-11 14: 18: 10,490 ColumnFamilyStore.java (línea 794) Enquear el flush de Memtable-batchlog @ 28149592 (13557969/13557969 serialized / live bytes, 4 ops)
INFO [FlushWriter: 10] 2014-06-11 14: 18: 10,490 Memtable.java (línea 363) Escritura de Memtable-batchlog @ 28149592 (13557969/13557969 bytes serializados / en vivo, 4 operaciones)
INFO [FlushWriter: 10] 2014-06-11 14: 18: 10,566 Memtable.java (línea 410) Vaciado completo; nada necesitaba ser retenido. La posición de Commitlog era ReplayPosition (segmentId = 1402469922169, position = 27138996)
INFO [ScheduledTasks: 1] 2014-06-11 14: 18: 13,758 GCInspector.java (línea 116) GC para ParNew: 640 ms para 3 colecciones, 775214160 usado; max es 1052770304
INFO [ScheduledTasks: 1] 2014-06-11 14: 18: 16,155 GCInspector.java (línea 116) GC para ConcurrentMarkSweep: 1838 ms para 2 colecciones, 810976000 utilizado; max es 1052770304
INFO [ScheduledTasks: 1] 2014-06-11 14: 18: 17,959 GCInspector.java (línea 116) GC para ConcurrentMarkSweep: 1612 ms para 1 colección, 858404088 usado; max es 1052770304
INFO [ScheduledTasks: 1] 2014-06-11 14: 18: 17,959 StatusLogger.java (línea 55) Pool Name Active
Pendiente completado bloqueado todo el tiempo bloqueado
INFO [ScheduledTasks: 1] 2014-06-11 14: 18: 17,959 StatusLogger.java (línea 70) ReadStage 0 0 627 0 0
INFO [ScheduledTasks: 1] 2014-06-11 14: 18: 17,960 StatusLogger.java (línea 70) RequestResponseStage 0
0 0 0 0
INFO [ScheduledTasks: 1] 2014-06-11 14: 18: 17,960 StatusLogger.java (línea 70) ReadRepairStage 0 0 0 0 0
INFO [ScheduledTasks: 1] 2014-06-11 14: 18: 17,960 StatusLogger.java (línea 70) MutationStage 0
0 184386 0 0
INFO [ScheduledTasks: 1] 2014-06-11 14: 18: 17,960 StatusLogger.java (línea 70) ReplicateOnWriteStage 0 0 0 0 0


  1. Este es un tiempo de espera del lado del cliente (vea el enlace en la respuesta de @ Syrial: http://datastax.github.io/python-driver/api/cassandra.html#cassandra.OperationTimedOut )

  2. Puede cambiar el tiempo de espera predeterminado de la Session :

    session = cluster.connect() session.default_timeout = 30 # this is in *seconds*

  3. Puede cambiar el tiempo de espera para una consulta en particular :

    session.execute(statement, 30, ...)

  4. Puede acelerar la ejecución un poco usando instrucciones preparadas dentro de BATCH . Consulte las secciones de declaraciones de procesamiento por lotes en esta publicación

  5. Si busca resultados aún mejores, lea estas notas de rendimiento