layout: doc_page

Middle Manager Node

The middle manager node is a worker node that executes submitted tasks. Middle Managers forward tasks to peons that run in separate JVMs. The reason we have separate JVMs for tasks is for log isolation. Each Peon is capable of running only one task at a time, however, a middle manager may have multiple peons.

Quick Start

Running

io.druid.cli.Main server middleManager

With the following JVM configuration:

-Duser.timezone=UTC
-Dfile.encoding=UTF-8

-Ddruid.host=localhost
-Ddruid.port=8091
-Ddruid.service=middleManager

-Ddruid.zk.service.host=localhost

-Ddruid.db.connector.connectURI=jdbc:mysql://localhost:3306/druid
-Ddruid.db.connector.user=druid
-Ddruid.db.connector.password=diurd
-Ddruid.selectors.indexing.serviceName=overlord
-Ddruid.indexer.runner.startPort=8092
-Ddruid.indexer.fork.property.druid.computation.buffer.size=268435456

JVM Configuration

Middle managers pass their configurations down to their child peons. The middle manager module requires the following configs:

PropertyDescriptionDefault
druid.worker.ipThe IP of the worker.localhost
druid.worker.versionVersion identifier for the middle manager.0
druid.worker.capacityMaximum number of tasks the middle manager can accept.Number of available processors - 1
druid.indexer.runner.compressZnodesIndicates whether or not the middle managers should compress Znodes.false
druid.indexer.runner.maxZnodeBytesThe maximum size Znode in bytes that can be created in Zookeeper.524288
druid.indexer.runner.taskDirTemporary intermediate directory used during task execution./tmp/persistent
druid.indexer.runner.javaCommandCommand required to execute java.java
druid.indexer.runner.javaOpts-X Java options to run the peon in its own JVM.""
druid.indexer.runner.classpathJava classpath for the peon.System.getProperty(“java.class.path”)
druid.indexer.runner.startPortThe port that peons begin running on.8080
druid.indexer.runner.allowedPrefixesWhitelist of prefixes for configs that can be passed down to child peons.“com.metamx”, “druid”, “io.druid”, “user.timezone”,“file.encoding”