public class ZooKeeperHaServices extends AbstractHaServices
AbstractHaServices using Apache ZooKeeper. The services store
data in ZooKeeper's nodes as illustrated by the following tree structure:
/flink
+/cluster_id_1/resource_manager_lock
| |
| +/job-id-1/job_manager_lock
| | /checkpoints/latest
| | /latest-1
| | /latest-2
| |
| +/job-id-2/job_manager_lock
|
+/cluster_id_2/resource_manager_lock
|
+/job-id-1/job_manager_lock
|/checkpoints/latest
| /latest-1
|/persisted_job_graph
The root path "/flink" is configurable via the option HighAvailabilityOptions.HA_ZOOKEEPER_ROOT. This makes sure Flink stores its data under specific
subtrees in ZooKeeper, for example to accommodate specific permission.
The "cluster_id" part identifies the data stored for a specific Flink "cluster". This "cluster" can be either a standalone or containerized Flink cluster, or it can be job on a framework like YARN or Mesos (in a "per-job-cluster" mode).
In case of a "per-job-cluster" on YARN or Mesos, the cluster-id is generated and configured automatically by the client or dispatcher that submits the Job to YARN or Mesos.
In the case of a standalone cluster, that cluster-id needs to be configured via HighAvailabilityOptions.HA_CLUSTER_ID. All nodes with the same cluster id will join the same
cluster and participate in the execution of the same set of jobs.
configuration, ioExecutor, loggerDEFAULT_JOB_ID, DEFAULT_LEADER_ID| Constructor and Description |
|---|
ZooKeeperHaServices(org.apache.flink.shaded.curator4.org.apache.curator.framework.CuratorFramework client,
Executor executor,
org.apache.flink.configuration.Configuration configuration,
BlobStoreService blobStoreService) |
| Modifier and Type | Method and Description |
|---|---|
CheckpointRecoveryFactory |
createCheckpointRecoveryFactory()
Create the checkpoint recovery factory for the job manager.
|
JobGraphStore |
createJobGraphStore()
Create the submitted job graph store for the job manager.
|
protected LeaderElectionService |
createLeaderElectionService(String leaderName)
Create leader election service with specified leaderName.
|
protected LeaderRetrievalService |
createLeaderRetrievalService(String leaderName)
Create leader retrieval service with specified leaderName.
|
RunningJobsRegistry |
createRunningJobsRegistry()
Create the registry that holds information about whether jobs are currently running.
|
protected String |
getLeaderNameForDispatcher()
Get the leader name for Dispatcher.
|
String |
getLeaderNameForJobManager(org.apache.flink.api.common.JobID jobID)
Get the leader name for specific JobManager.
|
protected String |
getLeaderNameForResourceManager()
Get the leader name for ResourceManager.
|
protected String |
getLeaderNameForRestServer()
Get the leader name for RestServer.
|
void |
internalCleanup()
Clean up the meta data in the distributed system(e.g.
|
void |
internalCleanupJobData(org.apache.flink.api.common.JobID jobID)
Clean up the meta data in the distributed system(e.g.
|
void |
internalClose()
Closes the components which is used for external operations(e.g.
|
cleanupJobData, close, closeAndCleanupAllData, createBlobStore, getCheckpointRecoveryFactory, getClusterRestEndpointLeaderElectionService, getClusterRestEndpointLeaderRetriever, getDispatcherLeaderElectionService, getDispatcherLeaderRetriever, getJobGraphStore, getJobManagerLeaderElectionService, getJobManagerLeaderRetriever, getJobManagerLeaderRetriever, getResourceManagerLeaderElectionService, getResourceManagerLeaderRetriever, getRunningJobsRegistryclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetWebMonitorLeaderElectionService, getWebMonitorLeaderRetrieverpublic ZooKeeperHaServices(org.apache.flink.shaded.curator4.org.apache.curator.framework.CuratorFramework client,
Executor executor,
org.apache.flink.configuration.Configuration configuration,
BlobStoreService blobStoreService)
public CheckpointRecoveryFactory createCheckpointRecoveryFactory()
AbstractHaServicescreateCheckpointRecoveryFactory in class AbstractHaServicespublic JobGraphStore createJobGraphStore() throws Exception
AbstractHaServicescreateJobGraphStore in class AbstractHaServicesException - if the submitted job graph store could not be createdpublic RunningJobsRegistry createRunningJobsRegistry()
AbstractHaServicescreateRunningJobsRegistry in class AbstractHaServicesprotected LeaderElectionService createLeaderElectionService(String leaderName)
AbstractHaServicescreateLeaderElectionService in class AbstractHaServicesleaderName - ConfigMap name in Kubernetes or child node path in Zookeeper.protected LeaderRetrievalService createLeaderRetrievalService(String leaderName)
AbstractHaServicescreateLeaderRetrievalService in class AbstractHaServicesleaderName - ConfigMap name in Kubernetes or child node path in Zookeeper.public void internalClose()
AbstractHaServicesinternalClose in class AbstractHaServicespublic void internalCleanup()
throws Exception
AbstractHaServicesIf an exception occurs during internal cleanup, we will continue the cleanup in AbstractHaServices.closeAndCleanupAllData() and report exceptions only after all cleanup steps have been
attempted.
internalCleanup in class AbstractHaServicesException - when do the cleanup operation on external storage.public void internalCleanupJobData(org.apache.flink.api.common.JobID jobID)
throws Exception
AbstractHaServicesinternalCleanupJobData in class AbstractHaServicesjobID - The identifier of the job to cleanup.Exception - when do the cleanup operation on external storage.protected String getLeaderNameForResourceManager()
AbstractHaServicesgetLeaderNameForResourceManager in class AbstractHaServicesprotected String getLeaderNameForDispatcher()
AbstractHaServicesgetLeaderNameForDispatcher in class AbstractHaServicespublic String getLeaderNameForJobManager(org.apache.flink.api.common.JobID jobID)
AbstractHaServicesgetLeaderNameForJobManager in class AbstractHaServicesjobID - job idprotected String getLeaderNameForRestServer()
AbstractHaServicesgetLeaderNameForRestServer in class AbstractHaServicesCopyright © 2014–2021 The Apache Software Foundation. All rights reserved.