Cassandra跟踪读取python驱动程序

时间:2017-07-28 21:40:53

标签: python cassandra datastax

我正在使用Cassandra处理应用程序,并且正在尝试跟踪我的查询以监控执行速度。

我一直在使用datastax中的python驱动程序并设置跟踪

prepared_statement = session.prepare(statement)
cmd = prepared_statement.bind(binding_params)
result = session.execute(cmd, trace = True)
print 'Duration: ', result.get_query_trace().duration.total_seconds()

这适用于upserts(插入或更新)。但是,对于select语句,我收到错误

Error from server: code=1000 [Unavailable exception] message="Cannot achieve 
consistency level LOCAL_ONE" info={'required_replicas': 1, 'alive_replicas': 
0, 'consistency': 'LOCAL_ONE'}
Traceback (most recent call last):
  File <source>, line 99, in processCQLRequest
    trace = result.get_query_trace()
  File "xxxx/python-packages/cassandra/cluster.py", line 4124, in get_query_trace
    return self.response_future.get_query_trace(max_wait_sec)
  File "xxxx/python-packages/cassandra/cluster.py", line 3867, in get_query_trace
    return self._get_query_trace(len(self._query_traces) - 1, max_wait, query_cl)
  File "xxxx/python-packages/cassandra/cluster.py", line 3882, in _get_query_trace
    trace.populate(max_wait=max_wait, query_cl=query_cl)
  File "xxxx/python-packages/cassandra/query.py", line 942, in populate
    SimpleStatement(self._SELECT_SESSIONS_FORMAT, consistency_level=query_cl), (self.trace_id,), time_spent, max_wait)
  File "xxxx/python-packages/cassandra/query.py", line 981, in _execute
    return future.result()
  File "xxxx/python-packages/cassandra/cluster.py", line 3840, in result
    raise self._final_exception

我可以说这是系统密钥空间中某个表的一致性问题,但有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

在您的请求中,看起来其中一个Cassandra节点可能已关闭。插入/更新进行得很顺利,因为当Cassandra集群中的节点关闭时,Cassandra能够存储提示。

检查&#34; NODETOOL STATUS&#34;的输出命令并确保所有节点都已启动。如果它们已经停机较长时间,请在继续进行查询处理之前尝试运行修复。

相关问题