【问题标题】:Cassandra / Hector Timeouts = What to do?Cassandra / Hector 超时 = 怎么办?
【发布时间】:2011-09-24 18:05:57
【问题描述】:

如果老练的用户能说出所有可能的解决方案(最佳实践)如何解决 Hector 客户端超时问题,我将不胜感激:

Caused by: me.prettyprint.hector.api.exceptions.HTimedOutException: TimedOutException()


Caused by: TimedOutException()
    at org.apache.cassandra.thrift.Cassandra$multiget_slice_result.read(Cassandra.java:9628)
    at org.apache.cassandra.thrift.Cassandra$Client.recv_multiget_slice(Cassandra.java:636)
    at org.apache.cassandra.thrift.Cassandra$Client.multiget_slice(Cassandra.java:608)
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl$10.execute(KeyspaceServiceImpl.java:388)
    ... 21 more

赫克托:

取自 Hector 文档:https://github.com/rantav/hector/wiki/User-Guide

我发现以下与超时有关:

1.) cassandraThriftSocketTimeout

卡珊德拉

1.) rpc_timeout_in_ms: 10000(在 cassandra.yaml 中)

还有哪些与 Hector 和 Cassandra 端的超时相关的其他可用设置?我有时间!所以我只想等待更长的时间!但我还没有找到等待更长时间的设置。

谢谢 马库斯

【问题讨论】:

  • 为了将来参考,您使用的是有序分区还是随机分区?既然我看到您使用的是 multiget_slice ,那么我假设也没有使用二级索引?

标签: cassandra hector


【解决方案1】:

来自 Apache Cassandra 源代码树中有关 TimeoutException 的 cassandra.thrift API:

“超过了 RPC 超时。节点在操作中失败,或者负载太高,或者请求的操作太大。”

简而言之,您要求的数据太多。您发送了什么样的查询?能发个这样的代码sn-p吗?

【讨论】:

  • 你好 zznate。非常感谢您的回答!!!我要做的是查询和发送 100 条记录/行的批次:每条记录大约有 15 列,每条记录在内存中的总大小约为 1KB。这是一个荒谬的低数据量。唯一的问题是,它在我的 Windows 开发环境中运行,并且 Windows 进行了很多分页,所以看起来,Cassandra 只是很忙。但是查看 Cassandra“日志”(Windows 控制台),垃圾收集在毫秒范围内......我没有在日志中看到任何关于压缩的信息(?)......我会进一步尝试......
  • 结合“nodetool cfstats”(特别注意“读取延迟”和“写入延迟”)密切关注 IO 和内存使用情况,这应该会为您提供更多关于在哪里可以找到的信息瓶颈。如果确实看起来分页过多,请尝试同时降低堆大小和内存阈值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
  • 2014-08-03
相关资源
最近更新 更多