Looks like the serialization/descrialization has a problem. If you want
to see an example of a Trove primitive map, see
LongDoubleArrayEdges.
On 7/4/13 7:06 AM, Pasupathy Mahalingam wrote:
Hi,
Thanks Avery Ching.
I get the following exception
java.lang.IllegalStateException: run: Caught an unrecoverable
exception waitFor: ExecutionException occurred while waiting for
org.apache.giraph.utils.ProgressableUtils$FutureWaitable@381eb0c6
at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:102)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
Caused by: java.lang.IllegalStateException: waitFor:
ExecutionException occurred while waiting for
org.apache.giraph.utils.ProgressableUtils$FutureWaitable@381eb0c6
at
org.apache.giraph.utils.ProgressableUtils.waitFor(ProgressableUtils.java:151)
at
org.apache.giraph.utils.ProgressableUtils.waitForever(ProgressableUtils.java:111)
at
org.apache.giraph.utils.ProgressableUtils.getFutureResult(ProgressableUtils.java:73)
at
org.apache.giraph.utils.ProgressableUtils.getResultsWithNCallables(ProgressableUtils.java:192)
at
org.apache.giraph.graph.GraphTaskManager.processGraphPartitions(GraphTaskManager.java:753)
at
org.apache.giraph.graph.GraphTaskManager.execute(GraphTaskManager.java:273)
at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:92)
... 7 more
Caused by: java.util.concurrent.ExecutionException:
java.lang.IllegalStateException: next: IOException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
at java.util.concurrent.FutureTask.get(FutureTask.java:91)
at
org.apache.giraph.utils.ProgressableUtils$FutureWaitable.waitFor(ProgressableUtils.java:271)
at
org.apache.giraph.utils.ProgressableUtils.waitFor(ProgressableUtils.java:143)
... 13 more
Caused by: java.lang.IllegalStateException: next: IOException
at
org.apache.giraph.utils.ByteArrayVertexIdData$VertexIdDataIterator.next(ByteArrayVertexIdData.java:211)
at
org.apache.giraph.comm.messages.ByteArrayMessagesPerVertexStore.addPartitionMessages(ByteArrayMessagesPerVertexStore.java:116)
at
org.apache.giraph.comm.requests.SendWorkerMessagesRequest.doRequest(SendWorkerMessagesRequest.java:72)
at
org.apache.giraph.comm.netty.NettyWorkerClientRequestProcessor.doRequest(NettyWorkerClientRequestProcessor.java:470)
at
org.apache.giraph.comm.netty.NettyWorkerClientRequestProcessor.flush(NettyWorkerClientRequestProcessor.java:419)
at
org.apache.giraph.graph.ComputeCallable.call(ComputeCallable.java:193)
at
org.apache.giraph.graph.ComputeCallable.call(ComputeCallable.java:70)
at
org.apache.giraph.utils.LogStacktraceCallable.call(LogStacktraceCallable.java:51)
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.io.IOException: ensureRemaining: Only 393 bytes
remaining, trying to read 8960
at
org.apache.giraph.utils.UnsafeByteArrayInputStream.ensureRemaining(UnsafeByteArrayInputStream.java:114)
at
org.apache.giraph.utils.UnsafeByteArrayInputStream.readFully(UnsafeByteArrayInputStream.java:128)
at
org.apache.giraph.utils.UnsafeByteArrayInputStream.readUTF(UnsafeByteArrayInputStream.java:275)
at
org.apache.hadoop.io.AbstractMapWritable.readFields(AbstractMapWritable.java:199)
at org.apache.hadoop.io.MapWritable.readFields(MapWritable.java:146)
at org.apache.hadoop.io.MapWritable.readFields(MapWritable.java:167)
at
org.apache.giraph.utils.ByteArrayVertexIdMessages.readData(ByteArrayVertexIdMessages.java:76)
at
org.apache.giraph.utils.ByteArrayVertexIdMessages.readData(ByteArrayVertexIdMessages.java:34)
at
org.apache.giraph.utils.ByteArrayVertexIdData$VertexIdDataIterator.next(ByteArrayVertexIdData.java:209)
... 12 more
It will be great on how you use writable maps based on Trove/ Fast
Util. Sample usage if you can share will be great.
Rgds
Pasupathy
On Wed, Jul 3, 2013 at 10:19 PM, Avery Ching <ach...@apache.org
<mailto:ach...@apache.org>> wrote:
We don't use MapWritable. Internally we have a bunch of writable
maps based on Trove or FastUtil for speed. What's your full
exception stack trace?
On 7/2/13 1:24 AM, Pasupathy Mahalingam wrote:
Hi,
I'm trying to send messages that is MapWritable
MapWritable msg = new MapWritable();
msg.put(new Text("test"), new
DoubleWritable(edgeWeightage));
sendMessage(edge.getTargetVertexId(), msg);
However, I find that this is throwing exception
(IllegalStateException)
Any inputs on what to take care while sending MapWritable
messages?
Rgds
Pasupathy