or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

configuration.mdentry-points.mdhigh-availability.mdindex.mdresource-management.mdtask-scheduling.mdutilities.md
tile.json

entry-points.mddocs/

Cluster Entry Points

Main entry points for launching Flink clusters on Mesos, supporting both session and per-job deployment modes with full integration into the Mesos resource management framework.

Capabilities

Session Cluster Entry Point

Entry point for launching long-running Flink session clusters on Mesos that can execute multiple jobs over their lifetime.

/**
 * Entry point for Mesos session clusters
 * Extends SessionClusterEntrypoint with Mesos-specific resource management
 */
public class MesosSessionClusterEntrypoint extends SessionClusterEntrypoint {
    /**
     * Constructor for Mesos session cluster entry point
     * @param config - Flink configuration including Mesos settings
     */
    public MesosSessionClusterEntrypoint(Configuration config);
    
    /**
     * Main entry point for starting a Mesos session cluster
     * @param args - Command line arguments for cluster configuration
     */
    public static void main(String[] args);
}

Usage Example:

import org.apache.flink.mesos.entrypoint.MesosSessionClusterEntrypoint;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.mesos.configuration.MesosOptions;

// Configure Mesos session cluster
Configuration config = new Configuration();
config.setString(MesosOptions.MASTER_URL, "mesos://master:5050");
config.setString(MesosOptions.RESOURCEMANAGER_FRAMEWORK_NAME, "flink-session");
config.setInteger(MesosOptions.FAILOVER_TIMEOUT_SECONDS, 600);

// Start from command line
MesosSessionClusterEntrypoint.main(new String[]{
    "--configDir", "/path/to/config"
});

Per-Job Cluster Entry Point

Entry point for launching Flink per-job clusters on Mesos where each job runs in its own dedicated cluster environment.

/**
 * Entry point for Mesos per-job clusters
 * Extends JobClusterEntrypoint with Mesos-specific lifecycle management
 */
public class MesosJobClusterEntrypoint extends JobClusterEntrypoint {
    /**
     * Constructor for Mesos per-job cluster entry point
     * @param config - Flink configuration including job and Mesos settings
     */
    public MesosJobClusterEntrypoint(Configuration config);
    
    /**
     * Main entry point for starting a Mesos per-job cluster
     * @param args - Command line arguments including job class specification
     */
    public static void main(String[] args);
}

Usage Example:

import org.apache.flink.mesos.entrypoint.MesosJobClusterEntrypoint;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.mesos.configuration.MesosOptions;

// Configure Mesos per-job cluster
Configuration config = new Configuration();
config.setString(MesosOptions.MASTER_URL, "mesos://master:5050");
config.setString(MesosOptions.RESOURCEMANAGER_FRAMEWORK_NAME, "flink-job");

// Start from command line with job specification
MesosJobClusterEntrypoint.main(new String[]{
    "--job-classname", "com.example.MyStreamingJob",
    "--configDir", "/path/to/config"
});

TaskManager Entry Point

Entry point for running TaskManager processes within Mesos containers, automatically launched by the Mesos resource manager.

/**
 * Entry point for TaskManager processes in Mesos containers
 * Handles TaskManager initialization within Mesos task environment
 */
public class MesosTaskExecutorRunner {
    /**
     * Main entry point for TaskManager processes in Mesos containers
     * @param args - Arguments passed from Mesos task launch
     */
    public static void main(String[] args);
}

Usage Note:

This class is not intended for direct user invocation. It is automatically launched by the Mesos ResourceManager when TaskManager containers are started on Mesos agents.

Configuration Requirements

All entry points require proper Mesos configuration to function correctly:

Required Configuration Options

// Mesos master URL
config.setString(MesosOptions.MASTER_URL, "mesos://master:5050");

// Framework identification
config.setString(MesosOptions.RESOURCEMANAGER_FRAMEWORK_NAME, "my-flink-framework");

// Optional but recommended
config.setInteger(MesosOptions.FAILOVER_TIMEOUT_SECONDS, 600);
config.setString(MesosOptions.RESOURCEMANAGER_FRAMEWORK_ROLE, "production");

High Availability Configuration

For production deployments, configure high availability:

// Enable HA
config.setString("high-availability", "zookeeper");
config.setString("high-availability.zookeeper.quorum", "zk1:2181,zk2:2181,zk3:2181");
config.setString("high-availability.storageDir", "hdfs://namenode/flink/ha");

Error Handling

Entry points handle common Mesos integration errors:

  • Framework registration failures: Automatic retry with exponential backoff
  • Mesos master disconnection: Failover to alternate masters if configured
  • Resource allocation timeouts: Graceful degradation with configurable timeouts
  • Container launch failures: Automatic cleanup and retry mechanisms

Deprecation Notice

All entry points in this module are deprecated as of Flink 1.13. Users should migrate to:

  • Kubernetes: Use org.apache.flink.kubernetes.entrypoint.* classes
  • YARN: Use org.apache.flink.yarn.entrypoint.* classes
  • Standalone: Use native Flink standalone mode

Types

/**
 * Base configuration class for all Mesos entry points
 */
public abstract class MesosEntrypoint {
    protected Configuration configuration;
    protected MesosServices mesosServices;
}