茂军王 created HBASE-14330:
---------------------------

             Summary: Regular Expressions cause  ipc.CallTimeoutException
                 Key: HBASE-14330
                 URL: https://issues.apache.org/jira/browse/HBASE-14330
             Project: HBase
          Issue Type: Bug
          Components: Client, Filters, IPC/RPC
    Affects Versions: 1.0.1
         Environment: CDH5.4.0
hbase-client-1.0.0-cdh5.4.0
            Reporter: 茂军王


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());
                /**
                 * when rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$" ,every 
thing is ok
                 * when String rowPattern = ".*_10_version$" ,error:rpc timeout
                 */
                //String rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$";
                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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to