Druid任务分配策略配置详解
[attach]1466[/attach]
在说任务配置策略之前,先给大家看一下druid任务处理的大概架构图
[attach]1467[/attach]
如上图可以看出overlord节点如何将任务分配到middlemanager节点进行处理,如果在架构中有多个middlemanager节点,那任务将怎么分配呢,分配的测试是什么?
默认策略是fillCapacity, 意思是当一个MiddleManager的worker capacity满了的时候,再有任务到来时,才会分配给另外的MiddleManager节点。
补充: middlemanager的capacity意思是,能容纳任务的数量,通过修改middleManager节点下的 runtime.properties配置文件里的druid.worker.capacity属性配置。
[attach]1468[/attach]
那么,除了这个策略,还有其他策略吗?另外,这个策略如何修改呢? 除了这个策略,还有fillCapacityWithAffinity, equalDistribution and javascript策略,那么策略如何修改呢?
通过向Overlord节点发送个一个HTTP请求来修改,实质上是修改保存druid元数据的数据库,即 MetadataStorage,修改步骤如下:
http://10.1.3.9:8090/druid/indexer/v1/worker(http://[attach]1469[/attach]: /druid/indexer/v1/worke X-Druid-Author sdx(修改配置的作者,可以随意写) X-Druid-Comment equal policy(修改配置的注释,可以随意写) Content-Type application/json
http://10.1.3.9:8090/druid/indexer/v1/worker(http://[attach]1470[/attach] 通过访问http://10.1.3.9:8090/druid/indexer/v1/worker/history查看配置是否成功 [attach]1471[/attach] 或者通过查看MetadataStorage的druid_conifg和druid_audit表查看是否配置成功 注意: linux上通过如下指令配置:: /druid/indexer/v1/worker) { "selectStrategy": { "type": "equalDistribution" } }
curl -XPOST -H 'X-Druid-Author: lucky' -H 'X-Druid-Comment: lucky' -H 'Content-Type: application/json' http://10.1.3.9:8090/druid/indexer/v1/worker -d '{ "selectStrategy": { "type": "equalDistribution" } }'更多内容请参考官网:http://druid.io/docs/0.9.1.1/configuration/indexing-service.html。