You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by "nareshreddy.y" <na...@gmail.com> on 2013/07/29 11:52:39 UTC

SocketTimeoutException issue from HBase Client

We are working on a scenario where we need to check the existence of the
record before insertion. If the record already exists we dont insert it
again. We are doing in batches. First we create a batch of Gets to see the
existence of the records we want to insert. This issue is not coming when
the table size is less and also it is very intermittent. *What is the
recommended batch size for Get*. And *what is best approach to check the
existence of the records before inserting??* Appreciate your responses..

Here's the stack trace..

java.util.concurrent.ExecutionException: java.net.SocketTimeoutException:
Call to b16-pf-dv-093.abc.com/10.106.8.103:60020 failed on socket timeout
exception: java.net.SocketTimeoutException: 60000 millis timeout while
waiting for channel to be ready for read. ch :
java.nio.channels.SocketChannel[connected local=/10.106.8.133:41903
remote=b16-pf-dv-093.abc.com/10.106.8.103:60020]
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchCallback(HConnectionManager.java:1604)
	at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1456)
	at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:757)
	at org.apache.hadoop.hbase.client.HTable.get(HTable.java:726)
	at
org.apache.hadoop.hbase.client.HTablePool$PooledHTable.get(HTablePool.java:367)
	at com.abc.sdp.core.metering.util.HBaseClient.get(HBaseClient.java:263)
	at
com.abc.sdp.core.metering.dao.MeteringHBaseDAOImpl.addMeteredRecords(MeteringHBaseDAOImpl.java:374)
	at
com.abc.sdp.core.metering.dao.MeteringHBaseDAOImpl.addMeteredRecords(MeteringHBaseDAOImpl.java:342)
	at HBaseTest.main(HBaseTest.java:32)
Caused by: java.net.SocketTimeoutException: Call to
b16-pf-dv-093.abc.com/10.106.8.103:60020 failed on socket timeout exception:
java.net.SocketTimeoutException: 60000 millis timeout while waiting for
channel to be ready for read. ch : java.nio.channels.SocketChannel[connected
local=/10.106.8.133:41903 remote=b16-pf-dv-093.abc.com/10.106.8.103:60020]
	at
org.apache.hadoop.hbase.ipc.HBaseClient.wrapException(HBaseClient.java:1026)
	at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:999)
	at
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86)
	at $Proxy6.multi(Unknown Source)
	at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3$1.call(HConnectionManager.java:1433)
	at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3$1.call(HConnectionManager.java:1431)
	at
org.apache.hadoop.hbase.client.ServerCallable.withoutRetries(ServerCallable.java:215)
	at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3.call(HConnectionManager.java:1440)
	at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3.call(HConnectionManager.java:1428)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.SocketTimeoutException: 60000 millis timeout while
waiting for channel to be ready for read. ch :
java.nio.channels.SocketChannel[connected local=/10.106.8.133:41903
remote=b16-pf-dv-093.abc.com/10.106.8.103:60020]
	at
org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:164)
	at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:155)
	at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:128)
	at java.io.FilterInputStream.read(FilterInputStream.java:116)
	at
org.apache.hadoop.hbase.ipc.HBaseClient$Connection$PingInputStream.read(HBaseClient.java:373)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	at java.io.DataInputStream.readInt(DataInputStream.java:370)
	at
org.apache.hadoop.hbase.ipc.HBaseClient$Connection.receiveResponse(HBaseClient.java:646)
	at
org.apache.hadoop.hbase.ipc.HBaseClient$Connection.run(HBaseClient.java:580)



--
View this message in context: http://apache-hbase.679495.n3.nabble.com/SocketTimeoutException-issue-from-HBase-Client-tp4048420.html
Sent from the HBase User mailing list archive at Nabble.com.