Class FlinkService


  • public class FlinkService
    extends java.lang.Object
    Service for submitting and interacting with Flink clusters and jobs.
    • Constructor Summary

      Constructors 
      Constructor Description
      FlinkService​(io.fabric8.kubernetes.client.KubernetesClient kubernetesClient, FlinkConfigManager configManager)  
    • Constructor Detail

      • FlinkService

        public FlinkService​(io.fabric8.kubernetes.client.KubernetesClient kubernetesClient,
                            FlinkConfigManager configManager)
    • Method Detail

      • getEffectiveStatus

        @VisibleForTesting
        protected static org.apache.flink.api.common.JobStatus getEffectiveStatus​(org.apache.flink.runtime.messages.webmonitor.JobDetails details)
      • getKubernetesClient

        public io.fabric8.kubernetes.client.KubernetesClient getKubernetesClient()
      • submitApplicationCluster

        public void submitApplicationCluster​(JobSpec jobSpec,
                                             org.apache.flink.configuration.Configuration conf,
                                             boolean requireHaMetadata)
                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • isHaMetadataAvailable

        public boolean isHaMetadataAvailable​(org.apache.flink.configuration.Configuration conf)
      • validateHaMetadataExists

        protected void validateHaMetadataExists​(org.apache.flink.configuration.Configuration conf)
      • submitSessionCluster

        public void submitSessionCluster​(org.apache.flink.configuration.Configuration conf)
                                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • submitJobToSessionCluster

        public org.apache.flink.api.common.JobID submitJobToSessionCluster​(io.fabric8.kubernetes.api.model.ObjectMeta meta,
                                                                           FlinkSessionJobSpec spec,
                                                                           org.apache.flink.configuration.Configuration conf,
                                                                           @Nullable
                                                                           java.lang.String savepoint)
                                                                    throws java.lang.Exception
        Throws:
        java.lang.Exception
      • isJobManagerPortReady

        public boolean isJobManagerPortReady​(org.apache.flink.configuration.Configuration config)
      • listJobs

        public java.util.Collection<org.apache.flink.runtime.client.JobStatusMessage> listJobs​(org.apache.flink.configuration.Configuration conf)
                                                                                        throws java.lang.Exception
        Throws:
        java.lang.Exception
      • requestJobResult

        public org.apache.flink.runtime.jobmaster.JobResult requestJobResult​(org.apache.flink.configuration.Configuration conf,
                                                                             org.apache.flink.api.common.JobID jobID)
                                                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getClusterClient

        @VisibleForTesting
        protected org.apache.flink.client.program.ClusterClient<java.lang.String> getClusterClient​(org.apache.flink.configuration.Configuration config)
                                                                                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • cancelJob

        public void cancelJob​(FlinkDeployment deployment,
                              UpgradeMode upgradeMode,
                              org.apache.flink.configuration.Configuration conf)
                       throws java.lang.Exception
        Throws:
        java.lang.Exception
      • waitForClusterShutdown

        @VisibleForTesting
        protected void waitForClusterShutdown​(org.apache.flink.configuration.Configuration conf)
      • deleteClusterDeployment

        public void deleteClusterDeployment​(io.fabric8.kubernetes.api.model.ObjectMeta meta,
                                            FlinkDeploymentStatus status,
                                            boolean deleteHaData)
      • cancelSessionJob

        public void cancelSessionJob​(FlinkSessionJob sessionJob,
                                     UpgradeMode upgradeMode,
                                     org.apache.flink.configuration.Configuration conf)
                              throws java.lang.Exception
        Throws:
        java.lang.Exception
      • triggerSavepoint

        public void triggerSavepoint​(java.lang.String jobId,
                                     SavepointTriggerType triggerType,
                                     SavepointInfo savepointInfo,
                                     org.apache.flink.configuration.Configuration conf)
                              throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getLastCheckpoint

        public java.util.Optional<Savepoint> getLastCheckpoint​(org.apache.flink.api.common.JobID jobId,
                                                               org.apache.flink.configuration.Configuration conf)
                                                        throws java.lang.Exception
        Throws:
        java.lang.Exception
      • fetchSavepointInfo

        public SavepointFetchResult fetchSavepointInfo​(java.lang.String triggerId,
                                                       java.lang.String jobId,
                                                       org.apache.flink.configuration.Configuration conf)
      • disposeSavepoint

        public void disposeSavepoint​(java.lang.String savepointPath,
                                     org.apache.flink.configuration.Configuration conf)
                              throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getClusterInfo

        public java.util.Map<java.lang.String,​java.lang.String> getClusterInfo​(org.apache.flink.configuration.Configuration conf)
                                                                              throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getJmPodList

        public io.fabric8.kubernetes.api.model.PodList getJmPodList​(FlinkDeployment deployment,
                                                                    org.apache.flink.configuration.Configuration conf)