ScannerTimeoutException 问题分析与解决方法
来源:互联网 发布:软件项目成本多少钱 编辑:程序博客网 时间:2024/06/05 07:01
遇到一些hadoop,hbase相关的异常,有时会有不知怎么解决的感觉,首先要确定问题,然后找出引起此问题的原因,再然后制定解决方案,最后选择一种实行。
hbase源码如巨人般站在我们的心中,让心强大起来,巨人就变小了
言归正传:
1.首先寻根朔源
scannerTimeout:Thrown when a scanner has timed out.当一个scanner超时时抛出此异常,是HTable的一个属性。
它是从哪设置的呢,请看下面:
package org.apache.hadoop.hbase.client;
public class HTable implements HTableInterface {
protected final int scannerTimeout;
public HTable(Configuration conf, final byte [] tableName) {
this.scannerTimeout =
(int) conf.getLong(HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY, HConstants.DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD);
}
}
然后看看HConstants里那两个值的设定,conf.getLong(v1,v2);此方法是指,从配置文件里读第一个“hbase.regionserver.lease.period”,
如果配置文件中没有此项,则将其设置为v2,即DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD = 60000(ms),就是60s。
package org.apache.hadoop.hbase;
public final class HConstants {
public static String HBASE_REGIONSERVER_LEASE_PERIOD_KEY =
"hbase.regionserver.lease.period";
/**
* Default value of {@link #HBASE_REGIONSERVER_LEASE_PERIOD_KEY}.
*/
public static long DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD = 60000;
/**
* timeout for each RPC
*/
public static String HBASE_RPC_TIMEOUT_KEY = "hbase.rpc.timeout";
/**
* Default value of {@link #HBASE_RPC_TIMEOUT_KEY}
*/
public static int DEFAULT_HBASE_RPC_TIMEOUT = 60000;
}
抛出此异常一般都是说,你用了多少秒了(>60),超过了限制啦。于是:
2.两种解决方案:
一是修改此值,将其设置大一些,这里设置成180秒,太大了连接会一直维持,有缺点
修改配置文件:$HBASE_HOME/conf/hbase-site.xml,修改或添加此属性
<property>
<name>hbase.regionserver.lease.period</name>
<value>180000</value>
</property>
二是修改程序,换一种思路,最好一次scan在60秒内总能返回至少一条结果。
看 HBase权威指南,发现还有中简单的方法:
Configuration conf = HBaseConfiguration.create()conf.setLong(HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY, 120000)
这样便改了,而且只是改了当前这次的client请求
- ScannerTimeoutException 问题分析与解决方法
- 手机常见干扰问题分析与解决方法
- No default constructor for entity问题分析与解决方法
- 企业常见问题分析与解决方法
- The return type is incompatible with JspSourceDependent.getDependants():JasperException问题分析与解决方法
- 程序员编程问题与解决方法
- DevStack安装问题与解决方法
- LR问题与解决方法.doc
- mycat问题集锦与解决方法
- VirtualBox问题汇总与解决方法
- tungsten-replicator问题与解决方法
- Sass技术问题与解决方法
- Sass技术问题与解决方法
- SQLServer乱码问题的分析及解决方法
- ajax的缓存问题分析和解决方法
- MySQL死锁问题实例分析及解决方法
- MySQL死锁问题实例分析及解决方法
- MySQL死锁问题实例分析及解决方法
- R12 查询EBS用户相关SQL
- 网络连接类型判断
- 关掉机器上的firewall
- 学写块设备驱动(一)----了解gendisk及request处理函数
- "<>"、"!="、"not in"、"exsits"和"not exists"的使用规范
- ScannerTimeoutException 问题分析与解决方法
- 申请签证时工作单位证明英文摸版
- vi编辑器命令总结
- 一个能够递归执行的makefile小例子
- Indy IdTcpserver
- oracle插入日期时间
- 创业需要些什么
- JOS环境搭建
- 突然想系统的学学汇编语言