查询时cqlsh命令行出错

时间:2015-03-23 07:22:36

标签: cassandra cassandra-2.0 cqlsh cassandra-cli

我有一个三节点Cassandra群集运行得非常好。当我在我的集​​群的一个节点上进行select count(*) from usertracking;查询时。我收到以下错误:

  errors={}, last_host=localhost
  Statement trace did not complete within 10 seconds

尽管如此,它在群集的两个节点的其余部分上工作正常。任何人都可以告诉我为什么我只在一个节点上得到这个错误,还有错误的原因是什么?

正如https://stackoverflow.com/questions/27766976/cassandra-cqlsh-query-fails-with-no-error中所述,我还增加了cassandra.yaml中的超时参数read_request_timeout_in_ms and range_request_timeout_in_ms。但这没有帮助。

KeySpace定义:

CREATE KEYSPACE cw WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 };

表格定义:

CREATE TABLE usertracking (
  cwc text,
  cur_visit_id text,
  cur_visit_datetime timestamp,
  cur_visit_last_ts bigint,
  prev_visit_datetime timestamp,
  prev_visit_last_ts bigint,
  tot_page_view bigint,
  tot_time_spent bigint,
  tot_visit_count bigint,
  PRIMARY KEY (cwc)
);

输出节点工具状态

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens  Owns    Host ID                               Rack
UN  192.168.1.200  146.06 MB  1       ?       92c5bd4a-8f2b-4d7b-b420-6261a1bb8648  rack1
UN  192.168.1.201  138.53 MB  1       ?       817d331b-4cc0-4770-be6d-7896fc00e82f  rack1
UN  192.168.1.202  155.04 MB  1       ?       351731fb-c3ad-45e0-b2c8-bc1f3b1bf25d  rack1

输出 nodetool tpstats

Pool Name                    Active   Pending      Completed   Blocked  All time blocked
CounterMutationStage              0         0              0         0                 0
ReadStage                         0         0             25         0                 0
RequestResponseStage              0         0         257103         0                 0
MutationStage                     0         0         593226         0                 0
ReadRepairStage                   0         0              0         0                 0
GossipStage                       0         0         612335         0                 0
CacheCleanupExecutor              0         0              0         0                 0
AntiEntropyStage                  0         0              0         0                 0
MigrationStage                    0         0              0         0                 0
ValidationExecutor                0         0              0         0                 0
CommitLogArchiver                 0         0              0         0                 0
MiscStage                         0         0              0         0                 0
MemtableFlushWriter               0         0             87         0                 0
MemtableReclaimMemory             0         0             87         0                 0
PendingRangeCalculator            0         0              3         0                 0
MemtablePostFlush                 0         0           2829         0                 0
CompactionExecutor                0         0            216         0                 0
InternalResponseStage             0         0              0         0                 0
HintedHandoff                     0         0              2         0                 0

Message type           Dropped
RANGE_SLICE                  0
READ_REPAIR                  0
PAGED_RANGE                  0
BINARY                       0
READ                         0
MUTATION                     0
_TRACE                       0
REQUEST_RESPONSE             0
COUNTER_MUTATION             0

1 个答案:

答案 0 :(得分:1)

不确定这是否有帮助。我的开发环境中有一个非常相似的配置,并且在运行计数操作时遇到了OperationTimedOut错误。

和我一样,我最初尝试使用cassandra.yaml中的各种TIMEOUT变量,但这些似乎没有任何区别。

最后,超出的超时实际上是cqlsh客户端本身。当我使用以下内容更新/创建〜/ .cassandra / cqlshrc文件时,我能够毫无失败地运行计数。

[connection]
client_timeout = 20

此示例将客户端时间设置为20秒。 以下文章中有关于cqlshrc文件的一些信息:CQL Configuration File

希望这会有所帮助,对不起,如果我正在咆哮错误的树。