hbase scan超时问题

下面是异常信息,拷贝,实际上我遇到的信息是读取某行时抛出异常:

java.lang.RuntimeException: org.apache.hadoop.hbase.client.ScannerTimeoutException: 76745ms passed since the last invocation, timeout is currently set to 60000

代码的基本设置和出现的场景:

1-超时时长180s;

2-缓存条数2000条,每条三列,值为Long型;

3-被扫描表大小,54G;

4-有一个过滤器,使用的前缀查询;

5-刚迁移集群,以前是MapReduc和Hbase在同一个集群上。迁移后,Hbase和MapReduce不再同一个集群上;

排查原因:

1-查看表有没有被破坏,参考命令hbase hbck;

2-超时时长解决方法:

   (1)-增加超时时长;(2)-减少缓存条数;  但问题不再此处,因为取的每条数据很小,总的两千条也不会暂用很多的内存;

3-前缀过滤器原因:因为时过滤查询和前缀查询的速度比较慢。所以在扫描的块中分布的合格的条数比例很小时。

   会很难再短时间内读取2000条数据,解决方法,用范围查询代替前缀查询

猜你喜欢

转载自www.cnblogs.com/parent-absent-son/p/9932260.html