摘要:
本文是Druid配置文件系列博文的第五篇,我们将继续逐个介绍Druid的五大组件,本文将开始介绍Data Server中的middle manager和peon组件。
以下配置都在middleManager/runtime.properties文件中。
MiddleManager Process Config
这些配置在其他组件中也都有,这里不太详细介绍,如需了解请查看之前的一篇博文Coordinator配置文件
MiddleManager Configuration
Middle manager需要传递他们的配置到子peon节点,需要以下配置:
属性 | 含义 | 备注 | 是否需要修改 |
---|---|---|---|
druid.indexer.runner.allowedPrefixes | 可以传递给子peon节点的前缀白名单 | 默认值是"com.metamx", “druid”, “org.apache.druid”, “user.timezone”, “file.encoding”, “java.io.tmpdir”, “hadoop” | 按需修改 |
druid.indexer.runner.compressZnodes | middle manager是否应该压缩Znode | 默认true | 一般不修改 |
druid.indexer.runner.classpath | peon的java classpath | 默认System.getProperty(“java.class.path”) | 一般不修改 |
druid.indexer.runner.javaCommand | 执行java需要的命令 | 默认java | 一般不修改 |
druid.indexer.runner.javaOpts | 「已废弃,使用javaOptsArray代替」传递给peon JVM的-X Java选项字符串 | 默认“” | 已废弃,一般不使用 |
druid.indexer.runner.javaOptsArray | 一个用于给peon传递jvm参数的字符串数据 | 默认[],例子["-XX:OnOutOfMemoryError=kill -9 %p"] | 按需配置 |
druid.indexer.runner.maxZnodeBytes | zk中Znode最大字节数 | 默认524288 | 一般不修改 |
druid.indexer.runner.startPort | peon使用的开始端口号 | 默认8100,应该大于1023,小于65536 | 一般不修改 |
druid.indexer.runner.endPort | peon使用的结束端口号 | 默认65535,应该大于startPort小于65535 | 一般不修改 |
druid.indexer.runner.ports | 一个用于指定peon端口号的数字数组,如果这个数组不为空,则peon端口号从这里取,startPort和endPort失效 | 默认[] | 按需配置 |
druid.worker.ip | worker的ip | 默认localhost | 一般不修改 |
druid.worker.version | Middle manager的版本标识符 | 默认0 | 一般不修改 |
druid.worker.capacity | middle manager可接受任务的最大数量 | 默认cpu数-1 | 按需配置 |
druid.worker.category | middle manager节点属于的目录名 | 默认__default_worker_category | 按需配置 |
Peon Processing
属性 | 含义 | 备注 | 是否需要修改 |
---|---|---|---|
druid.processing.buffer.sizeBytes | 指定用于存储中间结果的缓冲区大小 | 默认auto,最大1GB | 按需配置 |
druid.processing.buffer.poolCacheMaxCount | 用于缓存buffer的池子的最大大小(能缓存的buffer数量) | 默认Integer.MAX_VALUE | 一般不修改 |
druid.processing.formatString | 线程命名格式 | 默认processing-%s | 一般不修改 |
druid.processing.numMergeBuffers | 用于合并查询结果的可用的直接内存buffer的数量,每个buffer的大小是sizeBytes | 默认max(2, druid.processing.numThreads / 4) | 按需配置 |
druid.processing.numThreads | segment并行处理的线程数量 | 默认cpu核数-1,至少为1 | 按需配置 |
druid.processing.columnCache.sizeBytes | 维度值查询缓存的最大字节数 | 默认0,即禁止使用 | 按需配置 |
druid.processing.fifo | 相同优先级的任务是否按照先进先出的策略 | 默认false | 一般不修改 |
druid.processing.tmpDir | 处理应该存储的查询时中间文件保存地址 | 默认 java.io.tmpdir表示的路径 | 一般不修改 |
Peon Caching
属性 | 含义 | 备注 | 是否需要修改 |
---|---|---|---|
druid.realtime.cache.useCache | 在实时阶段是否使用缓存 | 默认false | 一般不修改 |
druid.realtime.cache.populateCache | 是否填充缓存 | 默认false | 一般不修改 |
druid.realtime.cache.unCacheable | 所有不被cache的查询类型 | 默认[] | 默认不修改 |
druid.realtime.cache.maxEntrySize | 最大缓存字节数 | 默认1_000_000 | 按需修改 |
Additional Peon Configuration
尽管peon继承了MiddleManager的配置,但可以在它们中间添加以下前缀来设置显式peon配置:
druid.indexer.fork.property
例子:druid.indexer.fork.property.druid.peon.mode=local
附加的Poen配置包括:
属性 | 含义 | 备注 | 是否需要修改 |
---|---|---|---|
druid.peon.mode | 可选值有local和remote,当选择local时会运行peon作为一个standalone组件 | 默认remote | 一般不修改 |
druid.indexer.task.baseDir | 基本临时工作目录 | 默认System.getProperty(“java.io.tmpdir”) | 一般不修改 |
druid.indexer.task.baseTaskDir | 任务的基本临时工作目录 | 默认${druid.indexer.task.baseDir}/persistent/task | 一般不修改 |
druid.indexer.task.defaultHadoopCoordinates | HadoopIndexTasks的默认hadoop版本 | 默认org.apache.hadoop:hadoop-client:2.8.5 | 一般不修改 |
druid.indexer.task.defaultRowFlushBoundary | 在持久化到磁盘之前的最大行数 | 默认75000 | 一般不修改 |
druid.indexer.task.directoryLockTimeout | 等待这个世界让僵尸peon退出 | 默认PT10M | 一般不修改 |
druid.indexer.task.gracefulShutdownTimeout | 为了让可存储的任务优雅退出middle manager等待这么长时间之后在重启 | 默认PT5M | 一般不修改 |
druid.indexer.task.hadoopWorkingPath | hadoop任务的临时工作目录 | 默认/tmp/druid-indexing | 一般不修改 |
druid.indexer.task.restoreTasksOnRestart | middle manager是否在退出和重启时尝试优雅停止任务 | 默认false | 按需配置 |
druid.indexer.server.maxChatRequests | 一个task能处理的并行请求的最大数量 | 默认0,表示不做限制 | 一般不修改 |
以下配置在remote模式下可以配置:
属性 | 含义 | 备注 | 是否需要修改 |
---|---|---|---|
druid.peon.taskActionClient.retry.minWait | 和overlord联系的最小重试时间 | 默认PT5S | 一般不修改 |
druid.peon.taskActionClient.retry.maxWait | 和overlord联系的最大重试时间 | 默认PT1M | 一般不修改 |
druid.peon.taskActionClient.retry.maxRetryCount | 和overlord联系的最大重试次数 | 默认60 | 一般不修改 |
druid.peon.defaultSegmentWriteOutMediumFactory.type | 新segment创建时,临时存储类型 | 默认tmpFile,可选值有tmpFile、offHeapMemory、onHeapMemory | 按需配置 |