最近处理了一个客户端scan超时问题,记录在此,希望能够帮助到遇到同样问题的同学。
问题的错误堆栈如下面所示:
java.lang.RuntimeException: org.apache.hadoop.hbase.client.ScannerTimeoutException: 76745ms passed since the last invocation, timeout is currently set to 60000
at org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:97) ~[hbase-client-1.1.2.jar:1.1.2]
at com.mogujie.fulldump.task.HBaseUtil.scanTable(HBaseUtil.java:109) ~[fulldump-indexbuildingcomponent-1.0-SNAPSHOT.jar:na]
at com.mogujie.fulldump.task.HbaseScanner$Task.run(

本文记录了一次解决HBase客户端scan超时问题的过程。错误堆栈显示为ScannerTimeoutException,通过分析源码发现,超时发生在ClientScanner的loadcache方法。解决方案是增大hbase.client.scanner.timeout.period配置。深入思考,该超时机制可能是为了防止服务器雪崩问题,由于客户端消费速度与服务端生产速度不匹配可能导致。
最低0.47元/天 解锁文章
424

被折叠的 条评论
为什么被折叠?



