【问题标题】:Exception in cassandra while inserting data with hector client使用赫克托客户端插入数据时卡桑德拉出现异常
【发布时间】:2014-02-13 16:26:26
【问题描述】:

我在从 hector 客户端插入数据时出现间歇性异常。

客户端正在捕获以下异常。

Exception: me.prettyprint.hector.api.exceptions.HectorException: All host pools marked down. Retry burden pushed out to client.
        at me.prettyprint.cassandra.connection.HConnectionManager.getClientFromLBPolicy(HConnectionManager.java:393)
        at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:249)
        at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecuteOperation(ExecutingKeyspace.java:97)
        at me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:243)
        at com.snapdeal.coms.service.CommonCassandraService.saveObject(CommonCassandraService.java:245)
        at com.snapdeal.coms.timemachine.service.COMSCassandraService.saveUpdatedUploadId(COMSCassandraService.java:91)
        at com.snapdeal.coms.timemachine.event.ProductStateUpdateEventHandler.handleEvent(ProductStateUpdateEventHandler.java:38)
        at com.snapdeal.coms.timemachine.TimeMachine.onEvent(TimeMachine.java:106)
        at com.snapdeal.coms.kafka.KafkaEventListenerContainer$KafkaConsumer.safeRun(KafkaEventListenerContainer.java:158)
        at com.snapdeal.coms.kafka.KafkaEventListenerContainer$KafkaConsumer.run(KafkaEventListenerContainer.java:175)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)

我检查了 Cassandra 日志并同时低于异常。

DEBUG [Thrift:230] 2014-02-13 12:31:34,785 CustomTThreadPoolServer.java (line 209) Thrift transport error occurred during processing of message.
org.apache.thrift.transport.TTransportException
        at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
        at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129)
        at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
        at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)
        at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
        at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:22)
        at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:24)

下面是我的 cassandra verion 和 hector 客户端版本

Cassandra-version : 1.2.11
Hector client : 1.0-2

目前我的 cassandra 客户端中只配置了 1 个节点。 thrift_framed_transport_size_in_mb 在我的 cassandra.yaml 中配置为 15mb。问题是我间歇性地遇到这个异常,因为一些事件没有被 cassandra 捕获。

【问题讨论】:

    标签: cassandra hector


    【解决方案1】:

    您的 hector 客户端版本相当旧,您应该升级它。我认为您会因为过时的 libthrift 而遇到兼容性问题。

    如果您使用 maven,您可以将 cassandra-thrift 声明为与您的 Cassandra 服务器版本的显式依赖项。这将覆盖 hector-core 引入的过时版本。

    <dependency>
        <groupId>org.apache.cassandra</groupId>
        <artifactId>cassandra-thrift</artifactId>
        <version>${cassandra-version}</version>
    </dependency>
    

    Cassandra 1.2.6 和 Hector 1.1-4 这对我们有用。

    【讨论】:

    • 我在生产环境中遇到了这个问题,虽然我们计划使用 java 驱动程序作为客户端连接器升级 cassandra 版本,但现在无法更改依赖关系。是否有任何其他解决方案可以使用相同的依赖项完成。
    • 不,抱歉。除了尝试重现导致问题的操作...如果您将服务器上的日志级别提高到 TRACE,您可能会获得有关错误情况/操作的更多信息?
    猜你喜欢
    • 2012-07-03
    • 2012-02-23
    • 2011-07-03
    • 2012-06-10
    • 2011-10-20
    • 2012-03-17
    • 2018-04-23
    • 2012-08-29
    • 2013-01-16
    相关资源
    最近更新 更多