/** * Given two vertices and their respective configuration objects createEdge will create an Edge * object that connects the two. * * @param vConf JobConf of the first vertex * @param v The first vertex (source) * @param wConf JobConf of the second vertex * @param w The second vertex (sink) * @return */ public Edge createEdge(JobConf vConf, Vertex v, JobConf wConf, Vertex w, TezEdgeProperty edgeProp) throws IOException { updateConfigurationForEdge(vConf, v, wConf, w); if (edgeProp.getEdgeType() == EdgeType.CUSTOM_EDGE) { int numBuckets = edgeProp.getNumBuckets(); byte[] userPayload = ByteBuffer.allocate(4).putInt(numBuckets).array(); VertexManagerPluginDescriptor desc = new VertexManagerPluginDescriptor(CustomPartitionVertex.class.getName()); desc.setUserPayload(userPayload); w.setVertexManagerPlugin(desc); } return new Edge(v, w, createEdgeProperty(edgeProp)); }