Hi Chadi, That does seem like a serialization issue. Which OutEdges class are you using, is it something you implemented?
Regards, Maja From: chadi jaber <chadijaber...@hotmail.com<mailto:chadijaber...@hotmail.com>> Reply-To: "user@giraph.apache.org<mailto:user@giraph.apache.org>" <user@giraph.apache.org<mailto:user@giraph.apache.org>> Date: Thursday, January 9, 2014 2:08 AM To: Lukas Nalezenec <lukas.naleze...@firma.seznam.cz<mailto:lukas.naleze...@firma.seznam.cz>>, "user@giraph.apache.org<mailto:user@giraph.apache.org>" <user@giraph.apache.org<mailto:user@giraph.apache.org>> Subject: RE: Problem with Giraph (please help me) Hello Lukas I have enclosed in my previous emails the exception. It seems to be a serialization issue (This occurs only when workers > 1) ... 2013-12-31 16:27:33,494 INFO org.apache.giraph.comm.netty.NettyClient: connectAllAddresses: Successfully added 4 connections, (4 total connected) 0 failed, 0 failures total. 2013-12-31 16:27:33,501 INFO org.apache.giraph.worker.BspServiceWorker: loadInputSplits: Using 1 thread(s), originally 1 threads(s) for 1 total splits. 2013-12-31 16:27:33,508 INFO org.apache.giraph.comm.SendPartitionCache: SendPartitionCache: maxVerticesPerTransfer = 10000 2013-12-31 16:27:33,508 INFO org.apache.giraph.comm.SendPartitionCache: SendPartitionCache: maxEdgesPerTransfer = 80000 2013-12-31 16:27:33,524 INFO org.apache.giraph.worker.InputSplitsCallable: call: Loaded 0 input splits in 0.020270009 secs, (v=0, e=0) 0.0 vertices/sec, 0.0 edges/sec 2013-12-31 16:27:33,527 INFO org.apache.giraph.comm.netty.NettyClient: waitAllRequests: Finished all requests. MBytes/sec sent = 0, MBytes/sec received = 0, MBytesSent = 0, MBytesReceived = 0, ave sent req MBytes = 0, ave received req MBytes = 0, secs waited = 0.656 2013-12-31 16:27:33,527 INFO org.apache.giraph.worker.BspServiceWorker: setup: Finally loaded a total of (v=0, e=0) 2013-12-31 16:27:33,598 INFO org.apache.giraph.comm.netty.handler.RequestDecoder: decode: Server window metrics MBytes/sec sent = 0, MBytes/sec received = 0, MBytesSent = 0, MBytesReceived = 0, ave sent req MBytes = 0, ave received req MBytes = 0, secs waited = 0.816 2013-12-31 16:27:33,605 WARN org.apache.giraph.comm.netty.handler.RequestServerHandler: exceptionCaught: Channel failed with remote address /172.16.45.53:59257 java.io.EOFException at org.jboss.netty.buffer.ChannelBufferInputStream.checkAvailable(ChannelBufferInputStream.java:231) at org.jboss.netty.buffer.ChannelBufferInputStream.readInt(ChannelBufferInputStream.java:174) at org.apache.giraph.edge.ByteArrayEdges.readFields(ByteArrayEdges.java:172) at org.apache.giraph.utils.WritableUtils.reinitializeVertexFromDataInput(WritableUtils.java:480) at org.apache.giraph.utils.WritableUtils.readVertexFromDataInput(WritableUtils.java:511) at org.apache.giraph.partition.SimplePartition.readFields(SimplePartition.java:126) at org.apache.giraph.comm.requests.SendVertexRequest.readFieldsRequest(SendVertexRequest.java:66) at org.apache.giraph.comm.requests.WritableRequest.readFields(WritableRequest.java:120) at org.apache.giraph.comm.netty.handler.RequestDecoder.decode(RequestDecoder.java:92) at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:72) at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:69) 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:724) the code for my vertex compute function : public class MergeVertex extends Vertex<LongWritable,DoubleWritable, DoubleWritable, NodeMessage> { ... /*** * Convert a Vertex Id from its LongWritable format to Point format (2 Element Array Format) * @param lng LongWritable Format of the VertexId * @return Alignment point Array */ public static int[] cvtLongToPoint(LongWritable lng){ int[] point={0,0}; point[0]=(int) (lng.get()/1000); point[1]=(int) (lng.get()% 1000); return point; } @Override public void compute(Iterable<NodeMessage> messages) throws IOException { int currentId[]= cvtLongToPoint(getId()); if (getSuperstep()==0) { //NodeValue nv=new NodeValue(); setValue(new DoubleWritable(0d)); } _signallength=getContext().getConfiguration().getInt("SignalLength",0); if((getSuperstep() < _signallength && getId().get()!=0L) || (getSuperstep()== 0 && getId().get()==0L)){ LongWritable dstId=new LongWritable(); //Nodes which are on Graph "Spine" //Remaining Edges Construction if(currentId[0]== currentId[1]){ //right Side for (int i=currentId[1]+1;i<_signallength;i++){ dstId=cvtPointToLong(currentId[0]+1,i); addVertexRequest(dstId,new DoubleWritable(Double.MAX_VALUE)); addEdgeRequest(getId(),EdgeFactory.create(dstId, new DoubleWritable(computeCost(getId(),dstId)))); } //Left Side for (int i=currentId[0]+2;i<_signallength;i++){ dstId=cvtPointToLong(i,currentId[1]+1); addVertexRequest(dstId,new DoubleWritable(Double.MAX_VALUE)); addEdgeRequest(getId(),EdgeFactory.create(dstId, new DoubleWritable(computeCost(getId(),dstId)))); } //Nodes which are not on Graph "Spine" //Remaining Edges Construction }else{ //right Side if(currentId[0]+1<_signallength){ for (int i=currentId[1]+1;i<_signallength;i++){ dstId=cvtPointToLong(currentId[0]+1,i); addEdgeRequest(getId(),EdgeFactory.create(dstId, new DoubleWritable(computeCost(getId(),dstId)))); } } //Left Side if(currentId[1]+1<_signallength){ for (int i=currentId[0]+2;i<_signallength;i++){ dstId=cvtPointToLong(i,currentId[1]+1); addEdgeRequest(getId(),EdgeFactory.create(dstId, new DoubleWritable(computeCost(getId(),dstId)))); } } } //No need to other vertex than source to be active if(getId().get() != 0L){ voteToHalt(); } }else if (getSuperstep() >= _signallength && getSuperstep() < 2*_signallength){ double minDist; long minSource=0L; if(getId().get() == 0L){ minDist=0; }else{ minDist=Double.MAX_VALUE; } for(NodeMessage message : messages){ if(minDist > message.get()){ minDist=message.get(); minSource=message.getSourceID(); } } if (minDist < getValue().get()){ setValue(new DoubleWritable(minDist)); for (Edge<LongWritable, DoubleWritable> edge : getEdges()) { double distance = minDist + edge.getValue().get(); sendMessage(edge.getTargetVertexId(), new NodeMessage(distance,getId().get())); } } //Only last Node is active if(currentId[0] != _signallength-1 || currentId[1] != _signallength-1){ voteToHalt(); } }else if(getSuperstep() >= 2*_signallength){ voteToHalt(); } } If you need more details please don't hesitate. Thanks in advance, Chadi ________________________________ Date: Thu, 9 Jan 2014 10:49:54 +0100 From: lukas.naleze...@firma.seznam.cz<mailto:lukas.naleze...@firma.seznam.cz> To: chadijaber...@hotmail.com<mailto:chadijaber...@hotmail.com> Subject: Re: Problem with Giraph (please help me) Hi, Find the mapper running on the remote address and check what happened. Maybe there will be exception. Lukas On 9.1.2014 09:38, chadi jaber wrote: exceptionCaught: Channel failed with remote address /172.16.45.53:59257