毕设开发日志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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu java 1.6 安装,ubuntu 中安装java jdk 1.6

--------------------------------------------------------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20/article/details/7307681-------------------------------------------------------------------------…

Oracle修改表结构字段名和字段长度

添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….); 删除字段的语法:alter table tab…

php快速排序实现代码,快速排序的算法php实现

function qsort(&$arr){_quick_sort($arr, 0, count($arr) - 1);}/*** 采用递归算法的快速排序。** param array $arr 要排序的数组* param int $low 最低的排序子段* param int $high 最高的排序字段*/function _quick_sort(&$arr, $low, $high){$low_data $arr[$low…

08-spring学习-annotation配置

利用annotation配置注入关系 为了更好的解释此类存在的意义,下面通过一段习惯性的开发进行问题的描述,例如: 现在有一个IAdminService服务层,这个服务层要调用的是IAdminDAO和IRoleDAO两个数据层操作,于是定义如下&…

JQuery 绑定select标签的onchange事件

原文出处&#xff1a;http://blog.csdn.net/a5489888/article/details/20045175 使用jqm的change事件 <script src"jquery.min.js" type"text/javascript"></script> <script language"javascript" type"text/javascript&q…

Android 6.0 源代码编译实践

前阵子去上海参加 Android 开发面试&#xff0c;被问及了 Android 的基本原理、常用组件背后的实现机制、设计模式等问题&#xff0c;我都回答地不好。面试时&#xff0c;老司机们常常问我对知识点“背后的实现代码有没有看&#xff1f;”。于是我就想着&#xff0c;回来要把 A…

php 链接远程oracle,PHP连接远程oracle输出数据

远程连接的连接字符串可以这样写oledbconnection 的连接字符串:providermsdaora;host192.168.1.1;data sourcemytest;user idsystem;passwordxxxprovider msdaora; 指明oledb 的提供者是oracle数据库host 是远程 oracle 数据库所在服务器的ip地址&#xff0c;如果端口不是默认…

RNN介绍,较易懂

人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候&#xff0c;你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃&#xff0c;然后用空白的大脑进行思考。我们的思想拥有持久性。 传统的神经网络并…

android虚拟机鼠标左键拖动会输入C

不知道什么原因&#xff0c;突然出现这个情况&#xff0c;以为是虚拟机坏了。于是删了&#xff0c;新建&#xff0c;问题还是存在。 问题原因&#xff1a; 后来发现&#xff0c;原来是今天开了有道词典&#xff0c;又开启了词典的划词翻译。 解决方法&#xff1a; 关闭划词翻译…

php生成图片水印,PHP生成图片加文字及图案水印办法

工作中&#xff0c;各种语言都要会&#xff0c;但不是各种语言都记到脑子里&#xff0c;常常要查字典、查手册、以及百度对于PHP生成图片加文字及图案水印这项技巧&#xff0c;好久没有用&#xff0c;又有些生疏了&#xff0c;现在来温故知新&#xff0c;加深记忆&#xff01;代…

易飞扬宣布完成100G CWDM4PSM4光模块量产线建设

讯&#xff0c;易飞扬即日宣布量产两款高性能的100G光模块&#xff1a;100G QSFP28 CWDM4 和100G QSFP28 PSM4。两种产品采用同一个技术平台和生产平台。本次建设投产的CWDM4/PSM4 车间为万级无尘恒温恒湿车间&#xff0c;面积2000平米&#xff0c;配置有3套全自动高精密WIRE B…

滑动切换activity

一、效果 手在屏幕上划过一段距离&#xff0c;切换页面。 二、原理 2.1手在屏幕上出发 onTouch事件 2.2在onTouch事件中完成滑动逻辑处理 2.2.1 判断划过的x轴距离&#xff0c;如果大于多少&#xff0c;则startActivtiy 2.2.2 判断划过的y轴距离&#xff0c;如果大于多少&a…

Redux的全家桶与最佳实践

2019独角兽企业重金招聘Python工程师标准>>> image.png Redux 的第一次代码提交是在 2015 年 5 月底&#xff08;也就是一年多前的样子&#xff09;&#xff0c;那个时候 React 的最佳实践还不是明晰&#xff0c;作为一个 View 层&#xff0c;有人会用 backbone 甚至…

php二分查找算法时间复杂度,一个运用二分查找算法的程序的时间复杂度是什么...

一个运用二分查找算法的程序的时间复杂度是“对数级别”。二分查找是一种效率较高的查找方法&#xff0c;算法复杂度即是while循环的次数&#xff0c;时间复杂度可以表示“O(h)O(log2n)”。本教程操作环境&#xff1a;windows7系统、Dell G3电脑。一个运用二分查找算法的程序的…

Android MediaPlayer使用方法简单介绍

1&#xff09;如何获得MediaPlayer实例&#xff1a; 可以使用直接new的方式&#xff1a;MediaPlayer mp new MediaPlayer();也可以使用create的方式&#xff0c;如&#xff1a;MediaPlayer mp MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了* 需要在…

oracle基本的操作命令,oracle命令基本操作

--创建表空间create tablespace TBS_OTHERS datafile G:\APP\ORCL\ORADATA\ORCL\TBS_OTHERS01.dbf size 1000m;-- 创建用户create user C##JHGL identified by jhgl default tablespace TBS_OTHERScreate user C##YJYJHGL identified by jhgl default tablespace TBS_OTHERScre…

将不确定变为确定~头压缩是否有必要,MVC如何实现头压缩

网页的头部压缩在页面体积大的情况下非常有必要做&#xff0c;它会使页面体积有一个明显的减小&#xff0c;同时加到网页从服务端下载到客户端的速度&#xff0c;以下是我做的一个测试&#xff1a; 没有使用头压缩时&#xff1a; 使用了头压缩后&#xff1a; 我们可以看到&…

android .9.png ”点九” 图片制作方法

“点九”是andriod平台的应用软件开发里的一种特殊的图片形式&#xff0c;文件扩展名为&#xff1a;.9.png 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸…

servlet3.0异步处理

Servlet3是Tomcat7出现的新特性&#xff0c;所以需要先安装tomcat7 微信企业号使用回调模式时&#xff1a; 假如企业无法保证在五秒内处理并回复&#xff0c;可以直接回复空串&#xff0c;企业号不会对此作任何处理&#xff0c;并且不会发起重试。这种情况下&#xff0c;可以…

使用svn diff的-r参数的来比较任意两个版本的差异

1 svn diff的用法1.1 对比当前本地的工作拷贝文件(working copy)和缓存在.svn下的版本库文件的区别[plain] view plaincopyprint? svn diff 1.2 对比当前本地的工作拷贝文件(working copy)和任意版本A的差异[plain] view plaincopyprint? svn diff -rA 比如&#xff0c;以下…