畢設開發日志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.pswp.cn/news/539939.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539939.shtml
英文地址,請注明出處:http://en.pswp.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;以下…