毕设开发日志2017-12-01-Scan超时
【前言】
本篇博客主要描述一下在开发过程中遇到的scan的超时问题。
【问题描述】
刚刚完成了对索引表的定义和建议,并且在单元测试中对该表进行插入和扫描时均未发现错误。但是在对该表进行整体更新时,需要在扫描weather表的过程中对该表进行不断的更新操作。但是发现每次更新到第100条数据的时候就报scan的超时错误。即使只更新一行数据中的某一列也是如此(只获取区块首的时候扫描量会大大下降),于是证明不是扫描量的问题。具体报错如下
Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hbase.client.ScannerTimeoutException: 1255382ms passed since the last invocation, timeout is currently set to 60000at org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:97)at com.zxc.fox.dao.IndexDao.updateAll(IndexDao.java:118)at com.zxc.fox.dao.IndexDao.main(IndexDao.java:38) Caused by: org.apache.hadoop.hbase.client.ScannerTimeoutException: 1255382ms passed since the last invocation, timeout is currently set to 60000at org.apache.hadoop.hbase.client.ClientScanner.loadCache(ClientScanner.java:417)at org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:332)at org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:94)... 2 more Caused by: org.apache.hadoop.hbase.UnknownScannerException: org.apache.hadoop.hbase.UnknownScannerException: Name: 533, already closed?at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2017)at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:31443)at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031)at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)at java.lang.Thread.run(Thread.java:745)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:525)at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106)at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:95)at org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRemoteException(ProtobufUtil.java:313)at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:241)at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:62)at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:310)at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:291)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:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:722) Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.UnknownScannerException): org.apache.hadoop.hbase.UnknownScannerException: Name: 533, already closed?at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2017)at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:31443)at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031)at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)at java.lang.Thread.run(Thread.java:745)at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1199)at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:216)at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:300)at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:31889)at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:200)... 9 more
【解决过程】
先查看了datanode的错误日志,然后参考了如下两篇博客:参考博客01,参考博客02,在代码中配置了超时时间,未成功。修改了hadoop配置文件,但是没有起作用。仔细思考了问题出错的原因,比对了之前自己写的一些方法,最后发现我嵌套了两个scan,于是修改此部分代码,先用一个scan得到所有的城市id之后保存在一个list里,在遍历这个list来代替之前的scan,这样做在实践中没有出现明显的时间消耗,但是却避免了scan超时问题。
【体会】
出现该问题可能是由多种原因造成的,先检查一下。可以从如下几方面考虑
1. 是否你自己每次的scan处理较耗时? -> 优化处理程序,scan一些设置调优(比如setBlockCache(false) )
2. 是否每次scan的caching设置过大? -> 减少caching (一般默认先设100)
3. 是否是网络或机器负载问题? -> 查看集群原因
4. 是否HBase本身负载问题? -> 查看RegionServer日志
转载于:https://www.cnblogs.com/420Rock/p/7943280.html
毕设开发日志2017-12-01-Scan超时相关推荐
- 毕设开发日志2017-11-03
[工作总结] 又到新的周五,总结一下这个周. 1.这周的工作节奏基本比较平缓,自己作息也比较规律,然后项目进度也是比较缓慢的推进着. 2.基本框架有了之后后面添加别的功能应该就快了.但是今天发现之前做 ...
- 【徕卡全站仪Geocom开发】开发日志#01
前言 不知道能写多久的开发日志,先将就着写着看看,也算是对自己当前的总结和未来的鞭策吧. 本人从21年10月份开始接触前端开发,22年3月份开始接触app开发,对一些原生的安卓语言可能不太了解甚至可能 ...
- 《世界·领主》开发日志[01]
其实很早就想写下开发日志了,可是每次都不知道怎么怎么地就忘记了.到现在<世界·领主>已经进入Coding阶段,才有这第一篇的开发日志.因为是第一篇,而且经历了这么多,所以要写的东西有点多. ...
- 中国象棋程序的设计与实现(七)--心得体会和开发日志
上大学那会,还没有自己专属的SVN仓库,但是我已经意识到了管理代码的重要性,我最常用的一种需求就是恢复到上一个正确的版本. 为此,我每实现一个重要功能,就会备份整个项目一次,增加开发日志,如" ...
- XiaoHu.ai开发日志(自2018年2月6日至2019年4月11日)
一年多来,一直在项目目录下的update_log.txt里记录开发日志,今天放到网上来,共 6189个字. ----XiaoHu.ai Standard 代号STD---- 2/6 v0.1 项目启动 ...
- PHP银联在线支付接口开发日志
银联在线支付接口开发日志 1. 登录银联自助化测试平台(登陆地址:open.unionpay.com),登录后,点击我的产品,如下:点击右方需要测试的接口,本例以 手机网页支付(WAP支付)为例. 2 ...
- android ble 设备扫描程序,Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备...
本文将带你了解Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备,希望本文对大家学Android有所帮助. < 最近在做毕设,需要几周内从头学起 ...
- 12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期时间
- 12.10 Nginx访问日志 - 12.11 Nginx日志切割 - 12.12 静态文件不记录日志和过期时间# 12.10 Nginx访问日志 - 日志的格式- vim /usr/local/ ...
- APL开发日志 -- 2013-03-02
以后作者在博客上在专栏记录 APL每天开发日志, 以记录APL最新进展. 2013-03-02 APL开发日志: ------------------------------------------- ...
最新文章
- parsel安装老是失败_Photoshop安装失败解决办法
- /IWBEP/CX_MGW_TECH_EXCEPTION - expand issue for old service on Docu history node
- DVS/DVR常见的监控名词
- leetcode 39. 组合总和 思考分析
- ElasticSearch 2 (27) - 信息聚合系列之故事开始
- 论文浅尝 | 提取计数量词丰富知识库
- 跨平台屏幕/摄像头RTMP推流模块设计要点
- 【Java】数据库编程
- Webrtc demo system
- Python 安装skimage即Scikit-Image
- Ubuntu16.04中安装Moveit教程及示例教程
- 前端项目(1)--《学成在线》简单首页
- 关于Jqueryweui 的select联动用法
- WIN10系统下命令提示符(cmd)的基本操作
- word设置多级标题
- itextpdf生成pdf中文乱码 (乱码中挣扎的自述)
- 勒索病毒防护形式_病毒的完整形式是什么?
- 微信小程序跳转美团外卖小程序时出现白屏解决demo
- 【应用C】C语言实现离散数学合式公式的递归判断
- 架构师的工作都干些什么?!想做架构师必看!
热门文章
- android studio中断,Android Studio是否有任何修复方法可以在Macbook Pro中断开测试设备的连接?...
- java并发集合面试题,那些经常被问的JAVA面试题(1)—— 集合部分
- android资产目录,android – 从非目录设备中的资产文件夹复制数据库
- mysql数据库初识实训总结_MySQL(数据库)的初识
- matlab 动态分配内存,[Matlab科学计算之高效编程] 1. 预分配内存
- 一阶系统单位阶跃响应的特点_一阶系统的阶跃响应有什么特点
- android屏幕适配流程,Android屏幕适配姿势
- java入职华为,通过这9个Java面试题,就可以入职华为啦
- sql截去最后一位_SqlServer从左边 最后 中间截取字符串
- gps卫星位置计算程序matlab_科研项目 | BD/ GPS卫星导航仿真测试系统研究