/** * Start to schedule a submitted user DAG. * * @param dagString the serialized DAG to schedule. */ private void startSchedulingUserDAG(final String dagString) { runnerThread.execute(() -> { userApplicationRunner.run(dagString); // send driver notification that user application is done. clientRPC.send(ControlMessage.DriverToClientMessage.newBuilder() .setType(ControlMessage.DriverToClientMessageType.ExecutionDone).build()); }); }
.registerHandler(ControlMessage.DriverToClientMessageType.ExecutionDone, event -> jobDoneLatch.countDown()) .registerHandler(ControlMessage.DriverToClientMessageType.DataCollected, message -> COLLECTED_DATA.addAll( SerializationUtils.deserialize(Base64.getDecoder().decode(message.getDataCollected().getData())))) .run();
@Override public void onNext(final TransportEvent transportEvent) { final byte[] bytes = transportEvent.getData(); final ControlMessage.DriverToClientMessage message; try { message = ControlMessage.DriverToClientMessage.parseFrom(bytes); } catch (final InvalidProtocolBufferException e) { throw new RuntimeException(e); } final ControlMessage.DriverToClientMessageType type = message.getType(); if (type == ControlMessage.DriverToClientMessageType.DriverStarted) { link = transportEvent.getLink(); } final EventHandler<ControlMessage.DriverToClientMessage> handler = handlers.get(type); if (handler == null) { throw new RuntimeException(String.format("Handler for message type %s not registered", type)); } else { handler.onNext(message); } } }
case ExecutorDataCollected: final String serializedData = message.getDataCollected().getData(); clientRPC.send(ControlMessage.DriverToClientMessage.newBuilder() .setType(ControlMessage.DriverToClientMessageType.DataCollected) .setDataCollected(ControlMessage.DataCollectMessage.newBuilder().setData(serializedData).build())
case ExecutorDataCollected: final String serializedData = message.getDataCollected().getData(); clientRPC.send(ControlMessage.DriverToClientMessage.newBuilder() .setType(ControlMessage.DriverToClientMessageType.DataCollected) .setDataCollected(ControlMessage.DataCollectMessage.newBuilder().setData(serializedData).build())
clientRPC.registerHandler(ControlMessage.ClientToDriverMessageType.DriverShutdown, message -> shutdown()); clientRPC.send(ControlMessage.DriverToClientMessage.newBuilder() .setType(ControlMessage.DriverToClientMessageType.DriverStarted).build());
clientRPC.registerHandler(ControlMessage.ClientToDriverMessageType.DriverShutdown, message -> shutdown()); clientRPC.send(ControlMessage.DriverToClientMessage.newBuilder() .setType(ControlMessage.DriverToClientMessageType.DriverStarted).build());
public org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage buildPartial() { org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage result = new org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } result.type_ = type_; if (((from_bitField0_ & 0x00000002) == 0x00000002)) { to_bitField0_ |= 0x00000002; } if (dataCollectedBuilder_ == null) { result.dataCollected_ = dataCollected_; } else { result.dataCollected_ = dataCollectedBuilder_.build(); } result.bitField0_ = to_bitField0_; onBuilt(); return result; }
public org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage buildPartial() { org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage result = new org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } result.type_ = type_; if (((from_bitField0_ & 0x00000002) == 0x00000002)) { to_bitField0_ |= 0x00000002; } if (dataCollectedBuilder_ == null) { result.dataCollected_ = dataCollected_; } else { result.dataCollected_ = dataCollectedBuilder_.build(); } result.bitField0_ = to_bitField0_; onBuilt(); return result; }
public Builder toBuilder() { return newBuilder(this); }
public int getSerializedSize() { int size = memoizedSerializedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(1, type_.getNumber()); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, dataCollected_); } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; }
public Builder toBuilder() { return newBuilder(this); }
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder(org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage prototype) {
public int getSerializedSize() { int size = memoizedSerializedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(1, type_.getNumber()); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, dataCollected_); } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; }
public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; if (!hasType()) { memoizedIsInitialized = 0; return false; } if (hasDataCollected()) { if (!getDataCollected().isInitialized()) { memoizedIsInitialized = 0; return false; } } memoizedIsInitialized = 1; return true; }
public org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage getDefaultInstanceForType() { return org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage.getDefaultInstance(); }
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder(org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage prototype) {
public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; if (!hasType()) { memoizedIsInitialized = 0; return false; } if (hasDataCollected()) { if (!getDataCollected().isInitialized()) { memoizedIsInitialized = 0; return false; } } memoizedIsInitialized = 1; return true; }
public static Builder newBuilder(org.apache.nemo.runtime.common.comm.ControlMessage.DriverToClientMessage prototype) { return newBuilder().mergeFrom(prototype); } public Builder toBuilder() { return newBuilder(this); }
/** * Start to schedule a submitted user DAG. * * @param dagString the serialized DAG to schedule. */ private void startSchedulingUserDAG(final String dagString) { runnerThread.execute(() -> { userApplicationRunner.run(dagString); // send driver notification that user application is done. clientRPC.send(ControlMessage.DriverToClientMessage.newBuilder() .setType(ControlMessage.DriverToClientMessageType.ExecutionDone).build()); }); }