public class JobMasterServiceLeadershipRunner extends Object implements JobManagerRunner, LeaderContender
JobMasterServiceProcess.
The responsibility of this component is to manage the leadership of the JobMasterServiceProcess. This means that the runner will create an instance of the process when
it obtains the leadership. The process is stopped once the leadership is revoked.
This component only accepts signals (job result completion, initialization failure) as long as it is running and as long as the signals are coming from the current leader process. This ensures that only the current leader can affect this component.
All leadership operations are serialized. This means that granting the leadership has to complete before the leadership can be revoked and vice versa.
The resultFuture can be completed with the following values: * *
JobManagerRunnerResult to signal an initialization failure of the JobMasterService or the completion of a job
Exception to signal an unexpected failure
| Constructor and Description |
|---|
JobMasterServiceLeadershipRunner(JobMasterServiceProcessFactory jobMasterServiceProcessFactory,
LeaderElection leaderElection,
JobResultStore jobResultStore,
LibraryCacheManager.ClassLoaderLease classLoaderLease,
org.apache.flink.runtime.rpc.FatalErrorHandler fatalErrorHandler) |
| Modifier and Type | Method and Description |
|---|---|
CompletableFuture<Acknowledge> |
cancel(org.apache.flink.api.common.time.Time timeout)
Cancels the currently executed job.
|
CompletableFuture<Void> |
closeAsync() |
org.apache.flink.api.common.JobID |
getJobID()
Get the job id of the executed job.
|
CompletableFuture<JobMasterGateway> |
getJobMasterGateway()
Get the
JobMasterGateway of the JobMaster. |
CompletableFuture<JobManagerRunnerResult> |
getResultFuture()
Get the result future of this runner.
|
void |
grantLeadership(UUID leaderSessionID)
Callback method which is called by the
LeaderElectionService upon selecting this
instance as the new leader. |
void |
handleError(Exception exception)
Callback method which is called by
LeaderElectionService in case of an error in the
service thread. |
boolean |
isInitialized()
Flag indicating if the JobManagerRunner has been initialized.
|
CompletableFuture<ExecutionGraphInfo> |
requestJob(org.apache.flink.api.common.time.Time timeout)
Requests the
ExecutionGraphInfo of the executed job. |
CompletableFuture<JobDetails> |
requestJobDetails(org.apache.flink.api.common.time.Time timeout)
Request the details of the executed job.
|
CompletableFuture<org.apache.flink.api.common.JobStatus> |
requestJobStatus(org.apache.flink.api.common.time.Time timeout)
Requests the current job status.
|
void |
revokeLeadership()
Callback method which is called by the
LeaderElectionService upon revoking the
leadership of a former leader. |
void |
start()
Start the execution of the
JobMaster. |
public JobMasterServiceLeadershipRunner(JobMasterServiceProcessFactory jobMasterServiceProcessFactory, LeaderElection leaderElection, JobResultStore jobResultStore, LibraryCacheManager.ClassLoaderLease classLoaderLease, org.apache.flink.runtime.rpc.FatalErrorHandler fatalErrorHandler)
public CompletableFuture<Void> closeAsync()
closeAsync in interface org.apache.flink.util.AutoCloseableAsyncpublic void start()
throws Exception
JobManagerRunnerJobMaster.start in interface JobManagerRunnerException - if the JobMaster cannot be startedpublic CompletableFuture<JobMasterGateway> getJobMasterGateway()
JobManagerRunnerJobMasterGateway of the JobMaster. The future is only completed if
the JobMaster becomes leader.getJobMasterGateway in interface JobManagerRunnerpublic CompletableFuture<JobManagerRunnerResult> getResultFuture()
JobManagerRunnerJobMaster fails. If the
result future is completed exceptionally via JobNotFinishedException, then this
signals that the job has not been completed successfully. All other exceptional completions
denote an unexpected exception which leads to a process restart.getResultFuture in interface JobManagerRunnerpublic org.apache.flink.api.common.JobID getJobID()
JobManagerRunnergetJobID in interface JobManagerRunnerpublic CompletableFuture<Acknowledge> cancel(org.apache.flink.api.common.time.Time timeout)
JobManagerRunnercancel in interface JobManagerRunnertimeout - of this operationpublic CompletableFuture<org.apache.flink.api.common.JobStatus> requestJobStatus(org.apache.flink.api.common.time.Time timeout)
JobManagerRunnerrequestJobStatus in interface JobManagerRunnertimeout - for the rpc callpublic CompletableFuture<JobDetails> requestJobDetails(org.apache.flink.api.common.time.Time timeout)
JobManagerRunnerrequestJobDetails in interface JobManagerRunnertimeout - for the rpc callpublic CompletableFuture<ExecutionGraphInfo> requestJob(org.apache.flink.api.common.time.Time timeout)
JobManagerRunnerExecutionGraphInfo of the executed job.requestJob in interface JobManagerRunnertimeout - for the rpc callExecutionGraphInfo of the executed jobpublic boolean isInitialized()
JobManagerRunnerisInitialized in interface JobManagerRunnerpublic void grantLeadership(UUID leaderSessionID)
LeaderContenderLeaderElectionService upon selecting this
instance as the new leader. The method is called with the new leader session ID.grantLeadership in interface LeaderContenderleaderSessionID - New leader session IDpublic void revokeLeadership()
LeaderContenderLeaderElectionService upon revoking the
leadership of a former leader. This might happen in case that multiple contenders have been
granted leadership.revokeLeadership in interface LeaderContenderpublic void handleError(Exception exception)
LeaderContenderLeaderElectionService in case of an error in the
service thread.handleError in interface LeaderContenderexception - Caught exceptionCopyright © 2014–2024 The Apache Software Foundation. All rights reserved.