layout: doc_page

Peons

Peons run a single task in a single JVM. MiddleManager is responsible for creating Peons for running tasks. Peons should rarely (if ever for testing purposes) be run on their own.

JVM Configuration

Although peons inherit the configurations of their parent middle managers, explicit child peon configs in middlemanager can be set by prefixing them with:

druid.indexer.fork.property

Additional peon configs include:

PropertyDescriptionDefault
druid.peon.modeChoices are “local” and “remote”. Setting this to local means you intend to run the peon as a standalone node (Not recommended).remote
druid.indexer.task.baseDirBase temporary working directory./tmp
druid.indexer.task.baseTaskDirBase temporary working directory for tasks./tmp/persistent/tasks
druid.indexer.task.hadoopWorkingPathTemporary working directory for Hadoop tasks./tmp/druid-indexing
druid.indexer.task.defaultRowFlushBoundaryHighest row count before persisting to disk. Used for indexing generating tasks.50000
druid.indexer.task.chathandler.typeChoices are “noop” and “announce”. Certain tasks will use service discovery to announce an HTTP endpoint that events can be posted to.noop

If the peon is running in remote mode, there must be an overlord up and running. Running peons in remote mode require the following configurations:

PropertyDescriptionDefault
druid.peon.taskActionClient.retry.minWaitThe minimum retry time to communicate with overlord.PT1M
druid.peon.taskActionClient.retry.maxWaitThe maximum retry time to communicate with overlord.PT10M
druid.peon.taskActionClient.retry.maxRetryCountThe maximum number of retries to communicate with overlord.10

Running

The peon should very rarely ever be run independent of the middle manager.

io.druid.cli.Main internal peon <task_file> <status_file>

The task file contains the task JSON object. The status file indicates where the task status will be output.