【翻译自https://druid.apache.org/docs/latest/operations/basic-cluster-tuning.html】
MiddleManager是一个轻量级的任务控制器/管理器,用于启动任务进程,执行摄入任务。
MiddleManager heap sizing(堆大小调整)
MiddleManager节点本身不需要较多的资源,通常设置 ~128M即可。
SSD storage
MiddleManager中的存储推荐使用SSDs,因为MiddlerManager启动的任务需要处理存储在磁盘中的segment数据。
Task Count
MiddleManager中能够启动的tasks的数量根据 druid.worker.capacity 来设置。
所需worker的数量依赖需要运行多少并发的摄入任务。在给定的机器上能够启动的worker的数量取决于每个worker分配的资源大小和可用的系统资源。
可以通过部署较多的MiddleManager机器来增加任务的容量。
Task configurations
下面的部分描述由MiddleManager启动的任务的配置。任务能被查询和执行摄入工作,因此相对于MM需要较多的资源。
Task heap sizing
对于Tasks,设置堆为1GB是足够的。
Lookups
Task processing threads and buffers(处理线程和缓存)
通常来说,处理线程设置为1或者2是足够的,因为相对于历史节点,任务持有较少的可查询数据。
druid.indexer.fork.property.druid.processing.numThreads:设置为 1 或者 2
druid.indexer.fork.property.druid.processing.numMergeBuffers: 设置为 2
druid.indexer.fork.property.druid.processing.buffer.sizeBytes:可以设置为 100MB
Direct memory sizing (直接内存大小)
上面描述的处理和合并缓冲区是直接内存缓冲区。
当任务处理查询时,必须要打开一组segments进行读取。这个过程需要一些直接内存空间。
摄入任务也需要合并部分摄入结果,这个过程也需要直接内存空间。
预估直接内存使用的公式如下:
(druid.processing.numThreads + druid.processing.numMergeBuffers +1)* druid.processing.buffer.sizeBytes
+1 因子是一个模糊估计,用于解释segment解压缓冲区和字典合并缓冲区。
Connection pool sizeing(连接池大小)
druid.server.http.numThreads 应该稍微高于 集群中所有Brokers设置的druid.broker.http.numConnections之和。
每个任务能够接收50个查询和10个非查询是一个合理的开端。
Total memory usage(总内存使用量)
按照下面的指引来预估任务的总内存使用量:
Heap: 1GB + (2 * total size of lookup maps)
Direct Memory:(druid.processing.numThreads + druid.processing.numMergeBuffers + 1)* druid.processing.buffer.sizeBytes
(MiddleManger + Tasks) 总的内存使用量:
MM heap size + druid.worker.capacity * (single task memory usage)
Configuration guidelines for specific ingestion types(对于具体的摄入类型的配置指引)
Kafka/Kinesis ingestion
如果使用 Kafka Indexing Service 或者 Kinesis Indexing Service,所需任务的数量将取决于分区的数量和taskCount/replica的设置。
除了这些要求外,在集群中分配较多的任务槽是一个好主意,这样就可以为其他任务(如压缩任务)提供空闲的任务槽。
Hadoop ingestion
如果仅使用 hadoop批量摄入,则可以降低为每个任务分配的资源数量。批量摄入任务不需要应答查询,且摄入工作由hadoop 集群执行,因此任务不需要较多的资源。
Parallel native ingesion
如果使用 parallel native batch ingestion,分配较多可用的任务槽是一个好主意,并且这将允许更大的摄取并发。
网友评论