0

我是 Cassandra 的新手,在本地机器上的 Cassandra 3 节点集群上运行用户定义的聚合。问题是,当我在较小的数据集上运行此聚合时,结果很好并且符合预期。

但是当数据太大时,查询失败并出现错误 -

OperationTimedOut: errors={'127.0.0.1': '客户端请求超时。见 Session.execute_async'}, last_host=127.0.0.1

我发现了与我的问题类似的以下问题,但没有得到解答。查找其他问题的链接 -

如何为大型用户定义的聚合查询设置超时和节流率

Cassandra CQLSH OperationTimedOut 错误=客户端请求超时。请参阅 Session.execute[_async](超时)

我已经修改了 cassandra.yaml 并且时间限制是 -

    read_request_timeout_in_ms: 555000
    range_request_timeout_in_ms: 10000
    write_request_timeout_in_ms: 2000
    counter_write_request_timeout_in_ms: 5000
    cas_contention_timeout_in_ms: 1000
    truncate_request_timeout_in_ms: 60000
    request_timeout_in_ms: 10000

但这对我没有帮助。请指导这些时间的正确配置是什么,以便在没有查询超时的情况下在大型数据集上运行相同的查询。

聚合代码 -

    CREATE FUNCTION countSessions(datamap map<text,int>,host text) 
    RETURNS NULL ON NULL INPUT 
    RETURNS map<text, int> 
    LANGUAGE java as 
    '
    Integer countValue = (Integer)datamap.get(host);
    if(countValue == null) {
    countValue = 1;
    } else {
    countValue++;
    } datamap.put(host,countValue);
    return datamap;
    ';


    CREATE OR REPLACE AGGREGATE hostaggregate(text) 
    SFUNC countSessions 
    STYPE map<text, int> 
    INITCOND {};

谢谢并恭祝安康,

维巴夫

PS - 如果有人选择否决这个问题,请在评论中提及相同的原因。

4

0 回答 0