我有一个三节点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
答案 0 :(得分:1)
不确定这是否有帮助。我的开发环境中有一个非常相似的配置,并且在运行计数操作时遇到了OperationTimedOut错误。
和我一样,我最初尝试使用cassandra.yaml中的各种TIMEOUT变量,但这些似乎没有任何区别。
最后,超出的超时实际上是cqlsh客户端本身。当我使用以下内容更新/创建〜/ .cassandra / cqlshrc文件时,我能够毫无失败地运行计数。
[connection]
client_timeout = 20
此示例将客户端时间设置为20秒。 以下文章中有关于cqlshrc文件的一些信息:CQL Configuration File
希望这会有所帮助,对不起,如果我正在咆哮错误的树。