Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-14330

Regular Expressions cause ipc.CallTimeoutException

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.0.1
    • Fix Version/s: None
    • Component/s: Client, Filters, IPC/RPC
    • Labels:
    • Environment:

      CDH5.4.0
      hbase-client-1.0.0-cdh5.4.0

    • Release Note:
      Hide
       when rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$" ,every thing is ok
       when String rowPattern = ".*_10_version$" ,error:rpc timeout
      Show
       when rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$" ,every thing is ok  when String rowPattern = ".*_10_version$" ,error:rpc timeout
    • Tags:
      RowFilter ipc timeout regularExpression

      Description

      Appear "ipc.CallTimeoutException" When I use scan with RowFilter. The RowFilter use regular expression ".*_10_version$".

      The below is my code:

      public static void main(String[] args) {
      	Scan scan = new Scan();
      	scan.setStartRow("2014-12-01".getBytes());
      	scan.setStopRow("2015-01-01".getBytes());
      	
      	String rowPattern = ".*_10_version$";
      	Filter myRowfilter = new RowFilter(CompareFilter.CompareOp.EQUAL, 
      	new RegexStringComparator(rowPattern));
      	List<Filter> myFilterList = new ArrayList<Filter>();
      	myFilterList.add(myRowfilter);
      	FilterList filterList = new FilterList(myFilterList);
      	scan.setFilter(filterList);
      		
      	TableName tn = TableName.valueOf("oneday");
      	Table t = null;
      	ResultScanner rs = null;
      	Long i = 0L;
      	try {
      		t = HBaseUtil.getHTable(tn);
      		rs = t.getScanner(scan);
      		Iterator<Result> iter = rs.iterator();
      			
      		while(iter.hasNext()){
      			Result r = iter.next();
      			i++;
      		}
      		System.out.println(i);
      	} catch (IOException e) {
      		e.printStackTrace();
      	}finally{
      		HBaseUtil.closeTable(t);
      	}
      }
      

      The below is the error:

      xception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions:
      Fri Aug 28 08:17:23 CST 2015, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=60308: row '2014-12-01' on table 'oneday' at region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56., hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648
      
      	at org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:97)
      	at com.jj.door.ScanFilterDoor.main(ScanFilterDoor.java:58)
      Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions:
      Fri Aug 28 08:17:23 CST 2015, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=60308: row '2014-12-01' on table 'oneday' at region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56., hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648
      
      	at org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.throwEnrichedException(RpcRetryingCallerWithReadReplicas.java:270)
      	at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:203)
      	at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:57)
      	at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
      	at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:294)
      	at org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:374)
      	at org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:94)
      	... 1 more
      Caused by: java.net.SocketTimeoutException: callTimeout=60000, callDuration=60308: row '2014-12-01' on table 'oneday' at region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56., hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648
      	at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:159)
      	at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:64)
      	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:745)
      Caused by: java.io.IOException: Call to tk-mapp-hadoop185/192.168.10.185:60020 failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=4, waitTime=60007, operationTimeout=60000 expired.
      	at org.apache.hadoop.hbase.ipc.RpcClientImpl.wrapException(RpcClientImpl.java:1236)
      	at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1204)
      	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:31751)
      	at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:204)
      	at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:62)
      	at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
      	at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:316)
      	at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:290)
      	at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)
      	... 4 more
      Caused by: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=4, waitTime=60007, operationTimeout=60000 expired.
      	at org.apache.hadoop.hbase.ipc.Call.checkAndSetTimeout(Call.java:70)
      	at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1178)
      	... 13 more
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              baby88 茂军王
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated: