`
zhangxiong0301
  • 浏览: 351146 次
社区版块
存档分类
最新评论

HBASE ScannerTimeoutException 问题

阅读更多

在对Hbase进行Scan的时候有时候会抛出ScannerTimeoutException,场景如下:

 

Java代码  收藏代码
  1. 2012 15:28:52 (14mins, 41sec)  
  2. org.apache.hadoop.hbase.client.ScannerTimeoutException: 60622ms passed since the last invocation, timeout is currently set to 60000  
  3.     at org.apache.hadoop.hbase.client.HTable$ClientScanner.next(HTable.java:1196)  
  4.     at org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.nextKeyValue(TableRecordReaderImpl.java:133)  
  5.     at org.apache.hadoop.hbase.mapreduce.TableRecordReader.nextKeyValue(TableRecordReader.java:142)  
  6.     at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)  
  7.     at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)  
  8.     at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143)  
  9.     at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)  
  10.     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)  
  11.     at org.apache.hadoop.mapred.Child$4.run(Child.java:255)  
  12.     at java.security.AccessController.doPrivileged(Native Method)  
  13.     at javax.security.auth.Subject.doAs(Subject.java:396)  
  14.     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)  
  15.     at org.apache.hadoop.mapred.Child.main(Child.java:249)  

 

原因查看步骤: 

查找源码如下:

 

Java代码  收藏代码
  1. long timeout = lastNext + scannerTimeout;  
  2.              // If we are over the timeout, throw this exception to the client  
  3.              // Else, it's because the region moved and we used the old id  
  4.              // against the new region server; reset the scanner.  
  5.              if (timeout < System.currentTimeMillis()) {  
  6.                long elapsed = System.currentTimeMillis() - lastNext;  
  7.                ScannerTimeoutException ex = new ScannerTimeoutException(  
  8.                    elapsed + "ms passed since the last invocation, " +  
  9.                        "timeout is currently set to " + scannerTimeout);  
  10.                ex.initCause(e);  
  11.                throw ex;  
  12.              }  

 

 核实下如下代码

 

Java代码  收藏代码
  1. long timeout = lastNext + scannerTimeout;  
Java代码  收藏代码
  1. 得出:ClientScanner.lastNext和HTable.scannerTimeout  

 

 跟踪:HTable.scannerTimeout

 

Java代码  收藏代码
  1. this.scannerTimeout =  
  2.      (int) conf.getLong(HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY, HConstants.DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD);  

 

 查看HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY和HConstants.DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD

我们可以得知如果没有设置HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY那么他们采用默认值即

 

Java代码  收藏代码
  1. public static long DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD = 60000;  

 跟踪:ClientScanner.lastNext发现此为上次访问时间

解决方案:

可以通过设置HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY解决

代码如下:

 

Java代码  收藏代码
  1. config.setLong(HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY, 120000);    
分享到:
评论

相关推荐

    HbaseTemplate 操作hbase

    java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行

    HBase数据库设计.doc

    HBase相对于关系数据库能解决的问题是什么? 2 HBase与关系数据的区别? 2 HBase与RDBMS的区别? 2 3. HBase的数据模式是怎么样的?即有哪些元素?如何存储?等 3 1). 数据模式 3 2). HBase的基本元素: 4 3) ...

    pinpoint的hbase初始化脚本hbase-create.hbase

    搭建pinpoint需要的hbase初始化脚本hbase-create.hbase

    HBase常见热点问题及几种解决方案.docx

    HBase常见热点问题及几种解决方案.docx

    HBase(hbase-2.4.9-bin.tar.gz)

    HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...

    hbase-sdk是基于hbase-client和hbase-thrift的原生API封装的一款轻量级的HBase ORM框架

    对HBase的API做了一层抽象,统一了HBase1.x和HBase2.x的实现,并提供了读写HBase的ORM的支持,同时,sdk还对HBase thrift 的客户端API进行了池化封装,(类似JedisPool),消除了直接使用原生API的各种问题,使之...

    hbase安装,节点添加,移除,常见问题解决

    hadoop-2.52-hbase-0.14-hadoop2 ha高可用安装,hbase动态添加删除节点,hbase集群正常状态及启动,hbase 问题汇总

    python3 使用 thrift 操作hbase 安装hbase-thirft后有一个Hbase报错

    python3 使用 thrift 操作hbase 安装hbase-thirft后有一个Hbase报错 使用这个修改完成的Hbase类替换掉原来的Hbase类问题全部解决 主要是因为python版本兼容性带来的问题

    HBase海量数据存储实战视频教程

    从HBase的集群搭建、HBaseshell操作、java编程、架构、原理、涉及的数据结构,并且结合陌陌海量消息存储案例来讲解实战HBase 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为...

    java大数据作业_3HBase

    1. 请用java集合的代码描述HBase的表结构 2. 请简述HBase中数据写入最后导致Region分裂的全过程 3. 如果设计一个笔记的表,表中要求有笔记的属性和笔记的内容,怎么做 4. HBase部署时如何指定多个zookeeper 5. HBase...

    Hbase资源整理集合

    HBase 官方文档.pdf HBase的操作和编程.pdf HBase Cpressr优化与实验 郭磊涛.pdf null【HBase】Data Migratin frm Gri t Clu Cmputing - Natural Sienes .pdf 分布式数据库HBase快照的设计与实现.pdf 【HBase】...

    hbase-2.3.5单机一键部署工具

    注意:zookeeper3.4.13和hbase2.3.5都是采用docker-compose方式部署 原文链接:https://blog.csdn.net/m0_37814112/article/details/120915194 说明:使用外部zookeeper3.4.13之hbase2.3.5一键部署工具,支持部署、...

    实验三:熟悉常用的HBase操作

    A.3实验三:熟悉常用的HBase操作 本实验对应第5章的内容。 A.3.1 实验目的 (1)理解HBase在Hadoop体系结构中的角色。(2)熟练使用HBase操作常用的 Shell命令。(3)熟悉HBase操作常用的 Java API。 A.3.2 实验平台 (1...

    HBase的图形化管理工具/Hbase的GUI工具

    由于网上下的不支持最新的hadoop,hbase 版本自己稍微修改了下,支持最新版本HBase的图形化管理工具,目前修改改为hadoop-2.7.1版本,hbase-1.1.2版本,依赖...hbase配置直接在hbase.xml中配置即可,如有问题欢迎留言。

    HBase学习利器:HBase实战

    HBase开发实战,HBase学习利器:HBase实战

    HBase开启审计日志

    HBase开启审计日志

    Hbase权威指南(HBase: The Definitive Guide)

    如果你正在寻找一种具备可伸缩性的存储解决方案来适应几乎没有穷尽的数据的话,这本书将可以向你表明apache hbase完全能够满足你的需求。作为google bigtable架构的开源实现,hbase能够支持数以十亿计的记录数和数以...

    大数据开发之Hbase基本使用及存储设计实战教程(视频+笔记+代码)

    │ Day15[Hbase 基本使用及存储设计].pdf │ ├─02_视频 │ Day1501_Hbase的介绍及其发展.mp4 │ Day1502_Hbase中的特殊概念.mp4 │ Day1503_Hbase与MYSQL的存储比较.mp4 │ Day1504_Hbase部署环境准备.mp4 │ Day...

Global site tag (gtag.js) - Google Analytics