You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Xudong Zheng (JIRA)" <ji...@apache.org> on 2017/09/05 02:31:02 UTC
[jira] [Created] (HBASE-18755) Set Increment getReturnResults to
false will cause batch failed by using BufferedMutator
Xudong Zheng created HBASE-18755:
------------------------------------
Summary: Set Increment getReturnResults to false will cause batch failed by using BufferedMutator
Key: HBASE-18755
URL: https://issues.apache.org/jira/browse/HBASE-18755
Project: HBase
Issue Type: Bug
Components: Client
Affects Versions: 1.2.0
Reporter: Xudong Zheng
I try to do batch of increment in Spark rdd like this:
{code:scala}
var connection: Connection = null
var bufferdMutator: BufferedMutator = null
try {
connection = getConnection
bufferdMutator = getBufferedMutator(connection)
dataItr.foreach(row => try {
val rowKey = toRowKey(row)
val increment = new Increment(rowKey)
increment.setDurability(Durability.SKIP_WAL)
increment.setReturnResults(false)
meas.foreach(columnName => {
increment.addColumn("cf".getBytes, Bytes.toBytes(columnName), row.getAs[Long](columnName))
})
bufferdMutator.mutate(increment)
} catch {
case t: Throwable => logger.error(t.getMessage, t)
})
bufferdMutator.flush()
} catch {
case t: Throwable => logger.error(t.getMessage, t)
} finally {
IOUtils.closeQuietly(bufferdMutator)
}
{code}
Because I do not need the return result, thus I use increment.setReturnResults(false) . When flush to Hbase, I got the flowing exception. When I change increment.setReturnResults(true) everything is OK
17/09/04 17:55:39 ERROR client.AsyncProcess: #32, Caught throwable while calling. This is unexpected. Retrying. Server is hadoop02,60020,1502272041150, tableName=push:msgHourInfo
java.lang.RuntimeException: java.lang.IllegalStateException: actions.getActionCount=1, actionResult.getResultOrExceptionCount=0 for region type: REGION_NAME
value: "msgHourInfo,,1504318878177.1edc4215ef0853432b1598a0b1965519."
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:208)
at org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl$SingleServerRequestRunnable.run(AsyncProcess.java:733)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
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.lang.IllegalStateException: actions.getActionCount=1, actionResult.getResultOrExceptionCount=0 for region type: REGION_NAME
value: "push:msgHourInfo,,1504318878177.1edc4215ef0853432b1598a0b1965519."
at org.apache.hadoop.hbase.protobuf.ResponseConverter.getResults(ResponseConverter.java:117)
at org.apache.hadoop.hbase.client.MultiServerCallable.call(MultiServerCallable.java:133)
at org.apache.hadoop.hbase.client.MultiServerCallable.call(MultiServerCallable.java:53)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
... 6 more
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)