public class Task extends Object implements Runnable, TaskActions, CheckpointListener
The Flink operators (implemented as subclasses of
AbstractInvokable
have only data readers, -writers, and certain event callbacks.
The task connects those to the network stack and actor messages, and tracks the state
of the execution and handles exceptions.
Tasks have no knowledge about how they relate to other tasks, or whether they are the first attempt to execute the task, or a repeated attempt. All of that is only known to the JobManager. All the task knows are its own runnable code, the task's configuration, and the IDs of the intermediate results to consume and produce (if any).
Each Task is run by one dedicated thread.
Constructor and Description |
---|
Task(JobInformation jobInformation,
TaskInformation taskInformation,
ExecutionAttemptID executionAttemptID,
AllocationID slotAllocationId,
int subtaskIndex,
int attemptNumber,
Collection<ResultPartitionDeploymentDescriptor> resultPartitionDeploymentDescriptors,
Collection<InputGateDeploymentDescriptor> inputGateDeploymentDescriptors,
int targetSlotNumber,
MemoryManager memManager,
IOManager ioManager,
NetworkEnvironment networkEnvironment,
BroadcastVariableManager bcVarManager,
TaskStateManager taskStateManager,
TaskManagerActions taskManagerActions,
InputSplitProvider inputSplitProvider,
CheckpointResponder checkpointResponder,
BlobCacheService blobService,
LibraryCacheManager libraryCache,
FileCache fileCache,
TaskManagerRuntimeInfo taskManagerConfig,
TaskMetricGroup metricGroup,
ResultPartitionConsumableNotifier resultPartitionConsumableNotifier,
PartitionProducerStateChecker partitionProducerStateChecker,
Executor executor)
IMPORTANT: This constructor may not start any work that would need to
be undone in the case of a failing task deployment.
|
Modifier and Type | Method and Description |
---|---|
void |
cancelExecution()
Cancels the task execution.
|
void |
failExternally(Throwable cause)
Marks task execution failed for an external reason (a reason other than the task code itself
throwing an exception).
|
AccumulatorRegistry |
getAccumulatorRegistry() |
SingleInputGate[] |
getAllInputGates() |
AllocationID |
getAllocationId() |
Thread |
getExecutingThread() |
ExecutionAttemptID |
getExecutionId() |
ExecutionState |
getExecutionState()
Returns the current execution state of the task.
|
Throwable |
getFailureCause()
If the task has failed, this method gets the exception that caused this task to fail.
|
SingleInputGate |
getInputGateById(IntermediateDataSetID id) |
Configuration |
getJobConfiguration() |
JobID |
getJobID() |
JobVertexID |
getJobVertexId() |
TaskMetricGroup |
getMetricGroup() |
ResultPartition[] |
getProducedPartitions() |
Configuration |
getTaskConfiguration() |
TaskInfo |
getTaskInfo() |
boolean |
isCanceledOrFailed()
Checks whether the task has failed, is canceled, or is being canceled at the moment.
|
void |
notifyCheckpointComplete(long checkpointID)
This method is called as a notification once a distributed checkpoint has been completed.
|
void |
registerExecutionListener(TaskExecutionStateListener listener) |
void |
run()
The core work method that bootstraps the task and executes its code.
|
void |
startTaskThread()
Starts the task's thread.
|
void |
stopExecution()
Stops the executing task by calling
StoppableTask.stop() . |
String |
toString() |
void |
triggerCheckpointBarrier(long checkpointID,
long checkpointTimestamp,
CheckpointOptions checkpointOptions)
Calls the invokable to trigger a checkpoint.
|
void |
triggerPartitionProducerStateCheck(JobID jobId,
IntermediateDataSetID intermediateDataSetId,
ResultPartitionID resultPartitionId)
Check the execution state of the execution producing a result partition.
|
public Task(JobInformation jobInformation, TaskInformation taskInformation, ExecutionAttemptID executionAttemptID, AllocationID slotAllocationId, int subtaskIndex, int attemptNumber, Collection<ResultPartitionDeploymentDescriptor> resultPartitionDeploymentDescriptors, Collection<InputGateDeploymentDescriptor> inputGateDeploymentDescriptors, int targetSlotNumber, MemoryManager memManager, IOManager ioManager, NetworkEnvironment networkEnvironment, BroadcastVariableManager bcVarManager, TaskStateManager taskStateManager, TaskManagerActions taskManagerActions, InputSplitProvider inputSplitProvider, CheckpointResponder checkpointResponder, BlobCacheService blobService, LibraryCacheManager libraryCache, FileCache fileCache, TaskManagerRuntimeInfo taskManagerConfig, @Nonnull TaskMetricGroup metricGroup, ResultPartitionConsumableNotifier resultPartitionConsumableNotifier, PartitionProducerStateChecker partitionProducerStateChecker, Executor executor)
IMPORTANT: This constructor may not start any work that would need to be undone in the case of a failing task deployment.
public JobID getJobID()
public JobVertexID getJobVertexId()
public ExecutionAttemptID getExecutionId()
public AllocationID getAllocationId()
public TaskInfo getTaskInfo()
public Configuration getJobConfiguration()
public Configuration getTaskConfiguration()
public SingleInputGate[] getAllInputGates()
public ResultPartition[] getProducedPartitions()
public SingleInputGate getInputGateById(IntermediateDataSetID id)
public AccumulatorRegistry getAccumulatorRegistry()
public TaskMetricGroup getMetricGroup()
public Thread getExecutingThread()
public ExecutionState getExecutionState()
public boolean isCanceledOrFailed()
public Throwable getFailureCause()
public void startTaskThread()
public void run()
public void stopExecution()
StoppableTask.stop()
.
This method never blocks.
UnsupportedOperationException
- if the AbstractInvokable
does not implement StoppableTask
IllegalStateException
- if the Task
is not yet runningpublic void cancelExecution()
This method never blocks.
public void failExternally(Throwable cause)
This method never blocks.
failExternally
in interface TaskActions
cause
- of the failurepublic void registerExecutionListener(TaskExecutionStateListener listener)
public void triggerPartitionProducerStateCheck(JobID jobId, IntermediateDataSetID intermediateDataSetId, ResultPartitionID resultPartitionId)
TaskActions
triggerPartitionProducerStateCheck
in interface TaskActions
jobId
- ID of the job the partition belongs to.intermediateDataSetId
- ID of the parent intermediate data set.resultPartitionId
- ID of the result partition to check. This
identifies the producing execution and partition.public void triggerCheckpointBarrier(long checkpointID, long checkpointTimestamp, CheckpointOptions checkpointOptions)
checkpointID
- The ID identifying the checkpoint.checkpointTimestamp
- The timestamp associated with the checkpoint.checkpointOptions
- Options for performing this checkpoint.public void notifyCheckpointComplete(long checkpointID)
CheckpointListener
notifyCheckpointComplete
in interface CheckpointListener
checkpointID
- The ID of the checkpoint that has been completed.Copyright © 2014–2019 The Apache Software Foundation. All rights reserved.