You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Design

Apache Mesos Framework should support scheduling and running Apache Ignite nodes in a Mesos cluster. This would develop a Mesos Scheduler, a Mesos Task. Java will be used as the implementation language for the Framework Scheduler.

Goal Scenario

User starts Ignite Mesos Framework, framework scheduler is started and registers in the Mesos Cluster. Once registration is successful the framework will start to launch tasks on nodes. The framework will begin expanding the cluster to the desired total number of nodes. If a node were to be lost, the framework would first attempt to restart the node and if unable to restart the node the framework would remove the lost node from the cluster.

Components

Mesos Framework

Multiple instances of the framework can be run for multiple topology Frameworks will re-register with Mesos when restarting if it was previously registered
Fault Tolerant, to restart failed Apache Ignite node tasks.

Mesos Scheduler

The Mesos scheduler is the component with the most high-level intelligence in the framework. It will need to possess the ability to start Apache Ignite cluster and distribute the correct configuration to all started nodes.

Responsibilities

  • Restarting failed nodes
  • Providing configuration to nodes (JVM OPTS)
  • Auto scaling

Mesos Task 

The Docker Mesos Task will be responsible for running container with required configuration.

How run Ignite Framework

1. Build ignite-mesos module.
2. Run IgniteFramework.

java -jar ignite-mesos-1.0.0-snapshot-jar-with-dependencies.jar [-cfg (path to config)]

Properties

The following properties can be used to configure how the framework will operate.

namedescriptiondefaultexample
IGNITE_RUN_CPU_PER_NODE
The number of CPU Cores for each Ignite Node.
UNLIMITED
2.0
IGNITE_MEMORY_PER_NODE
The number of Megabytes of RAM for each Ignite Node. 
UNLIMITED
1024
IGNITE_NODE_COUNT
The number of nodes in the cluster.
5
 10
    
    
    
    


  • IGNITE_RESOURCE_CPU_CORES - The number of CPU Cores for Apache Ignite cluster.
  • IGNITE_RESOURCE_MEM_MB - The number of Megabytes of RAM for Apache Ignite cluster.
  • IGNITE_RESOURCE_DISK_MB - The number of Megabytes of Disk for Apache Ignite cluster.
  • IGNITE_RESOURCE_NODE_CNT- The number of nodes in the cluster.
  • IGNITE_VERSION - Ignite version which will be deployed.
  • IGNITE_CONFIGURATION - Path to Spring XML configuration file

TODO

  • Deploy users classes to Ignite nodes.
  • Rolling updates.

Resources

1. Docker container 
2. JIRA

 

  • No labels