當前位置: 首頁>>代碼示例>>Java>>正文


Java JobEdge類代碼示例

本文整理匯總了Java中org.apache.flink.runtime.jobgraph.JobEdge的典型用法代碼示例。如果您正苦於以下問題:Java JobEdge類的具體用法?Java JobEdge怎麽用?Java JobEdge使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


JobEdge類屬於org.apache.flink.runtime.jobgraph包,在下文中一共展示了JobEdge類的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: connectSource

import org.apache.flink.runtime.jobgraph.JobEdge; //導入依賴的package包/類
public void connectSource(int inputNumber, IntermediateResult source, JobEdge edge, int consumerNumber) {

		final DistributionPattern pattern = edge.getDistributionPattern();
		final IntermediateResultPartition[] sourcePartitions = source.getPartitions();

		ExecutionEdge[] edges;

		switch (pattern) {
			case POINTWISE:
				edges = connectPointwise(sourcePartitions, inputNumber);
				break;

			case ALL_TO_ALL:
				edges = connectAllToAll(sourcePartitions, inputNumber);
				break;

			default:
				throw new RuntimeException("Unrecognized distribution pattern.");

		}

		this.inputEdges[inputNumber] = edges;

		// add the consumers to the source
		// for now (until the receiver initiated handshake is in place), we need to register the
		// edges as the execution graph
		for (ExecutionEdge ee : edges) {
			ee.getSource().addConsumer(ee, consumerNumber);
		}
	}
 
開發者ID:axbaretto,項目名稱:flink,代碼行數:31,代碼來源:ExecutionVertex.java

示例2: connectToPredecessors

import org.apache.flink.runtime.jobgraph.JobEdge; //導入依賴的package包/類
public void connectToPredecessors(Map<IntermediateDataSetID, IntermediateResult> intermediateDataSets) throws JobException {
	
	List<JobEdge> inputs = jobVertex.getInputs();
	
	if (LOG.isDebugEnabled()) {
		LOG.debug(String.format("Connecting ExecutionJobVertex %s (%s) to %d predecessors.", jobVertex.getID(), jobVertex.getName(), inputs.size()));
	}
	
	for (int num = 0; num < inputs.size(); num++) {
		JobEdge edge = inputs.get(num);
		
		if (LOG.isDebugEnabled()) {
			if (edge.getSource() == null) {
				LOG.debug(String.format("Connecting input %d of vertex %s (%s) to intermediate result referenced via ID %s.", 
						num, jobVertex.getID(), jobVertex.getName(), edge.getSourceId()));
			} else {
				LOG.debug(String.format("Connecting input %d of vertex %s (%s) to intermediate result referenced via predecessor %s (%s).",
						num, jobVertex.getID(), jobVertex.getName(), edge.getSource().getProducer().getID(), edge.getSource().getProducer().getName()));
			}
		}
		
		// fetch the intermediate result via ID. if it does not exist, then it either has not been created, or the order
		// in which this method is called for the job vertices is not a topological order
		IntermediateResult ires = intermediateDataSets.get(edge.getSourceId());
		if (ires == null) {
			throw new JobException("Cannot connect this job graph to the previous graph. No previous intermediate result found for ID "
					+ edge.getSourceId());
		}
		
		this.inputs.add(ires);
		
		int consumerIndex = ires.registerConsumer();
		
		for (int i = 0; i < parallelism; i++) {
			ExecutionVertex ev = taskVertices[i];
			ev.connectSource(num, ires, edge, consumerIndex);
		}
	}
}
 
開發者ID:axbaretto,項目名稱:flink,代碼行數:40,代碼來源:ExecutionJobVertex.java

示例3: connect

import org.apache.flink.runtime.jobgraph.JobEdge; //導入依賴的package包/類
private void connect(Integer headOfChain, StreamEdge edge) {

		physicalEdgesInOrder.add(edge);

		Integer downStreamvertexID = edge.getTargetId();

		JobVertex headVertex = jobVertices.get(headOfChain);
		JobVertex downStreamVertex = jobVertices.get(downStreamvertexID);

		StreamConfig downStreamConfig = new StreamConfig(downStreamVertex.getConfiguration());

		downStreamConfig.setNumberOfInputs(downStreamConfig.getNumberOfInputs() + 1);

		StreamPartitioner<?> partitioner = edge.getPartitioner();
		JobEdge jobEdge;
		if (partitioner instanceof ForwardPartitioner) {
			jobEdge = downStreamVertex.connectNewDataSetAsInput(
				headVertex,
				DistributionPattern.POINTWISE,
				ResultPartitionType.PIPELINED_BOUNDED);
		} else if (partitioner instanceof RescalePartitioner){
			jobEdge = downStreamVertex.connectNewDataSetAsInput(
				headVertex,
				DistributionPattern.POINTWISE,
				ResultPartitionType.PIPELINED_BOUNDED);
		} else {
			jobEdge = downStreamVertex.connectNewDataSetAsInput(
					headVertex,
					DistributionPattern.ALL_TO_ALL,
					ResultPartitionType.PIPELINED_BOUNDED);
		}
		// set strategy name so that web interface can show it.
		jobEdge.setShipStrategyName(partitioner.toString());

		if (LOG.isDebugEnabled()) {
			LOG.debug("CONNECTED: {} - {} -> {}", partitioner.getClass().getSimpleName(),
					headOfChain, downStreamvertexID);
		}
	}
 
開發者ID:axbaretto,項目名稱:flink,代碼行數:40,代碼來源:StreamingJobGraphGenerator.java

示例4: connectSource

import org.apache.flink.runtime.jobgraph.JobEdge; //導入依賴的package包/類
public void connectSource(int inputNumber, IntermediateResult source, JobEdge edge, int consumerNumber) {
	
	final DistributionPattern pattern = edge.getDistributionPattern();
	final IntermediateResultPartition[] sourcePartitions = source.getPartitions();
	
	ExecutionEdge[] edges = null;
	
	switch (pattern) {
		case POINTWISE:
			edges = connectPointwise(sourcePartitions, inputNumber);
			break;
			
		case BIPARTITE: 
			edges = connectAllToAll(sourcePartitions, inputNumber);
			break;
			
		default:
			throw new RuntimeException("Unrecognized distribution pattern.");
	
	}
	
	this.inputEdges[inputNumber] = edges;
	
	ExecutionGraph graph = getExecutionGraph();
	
	// add the consumers to the source
	// for now (until the receiver initiated handshake is in place), we need to register the 
	// edges as the execution graph
	for (ExecutionEdge ee : edges) {
		ee.getSource().addConsumer(ee, consumerNumber);
		graph.registerExecutionEdge(ee);
	}
}
 
開發者ID:citlab,項目名稱:vs.msc.ws14,代碼行數:34,代碼來源:ExecutionVertex.java


注:本文中的org.apache.flink.runtime.jobgraph.JobEdge類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。