AppMaster is the head of a streaming application.
Maintains a global view of message timestamp in the application
Handles dag modification and other stuff related with DAG
Handles dag modification and other stuff related with DAG
DagManager maintains multiple version of DAGs. For each version, the DAG is immutable. For operations like modifying a processor, it will create a new version of DAG.
Different processors of the stream application can use different jars.
Different processors of the stream application can use different jars. JarScheduler is the scheduler for different jars.
For a DAG of multiple processors, each processor can have its own jar. Tasks of same jar is scheduled by TaskScheduler, and TaskSchedulers are scheduled by JarScheduler.
In runtime, the implementation is delegated to actor JarSchedulerImpl
Stream application summary, used for REST API
TaskLocator is used to decide which machine one task should run on.
TaskLocator is used to decide which machine one task should run on.
User can config org.apache.gearpump.streaming.Constants#GEARPUMP_STREAMING_LOCALITIES to decide to control which machine the task is running on.
Tracks the registration of all tasks, when the application is booting up.
Schedules tasks to run for new allocated resources.
Schedules tasks to run for new allocated resources. TaskScheduler only schedule tasks that share the same jar. For scheduling for multiple jars, see org.apache.gearpump.streaming.appmaster.JarScheduler.
AppMaster is the head of a streaming application.
It contains: