-
配置
-
添加配置文件,文件格式为json文件,例如 文件叫queue_config.json,内容如下
{ "queues": { "user.${USER}": { "maxConcurrent": 5, "maxQueued": 20 }, "test": { "maxConcurrent": 2, "maxQueued": 3 }, "admin": { "maxConcurrent": 100, "maxQueued": 100 }, "global": { "maxConcurrent": 100, "maxQueued": 1000 } }, "rules": [ { "user": "bob", #bob为管理员,最多可以同时进行100个查询,有100个在等待队列中 "queues": ["admin"] }, { "user": "guest",#guest用户使用test的策略,最多可以同时进行2个查询,有3个在等待队列中 "queues": ["test"] }, { "queues": [ "user.${USER}", "global" ] } ] }
-
修改配置,修改Presto/etc/config.properties,添加以下配置
query.queue-config-file=/opt/PaaS/Talas/lib/Presto/etc/queue_config.json - 重启Presto Server
-
添加配置文件,文件格式为json文件,例如 文件叫queue_config.json,内容如下
-
验证
使用多线程的方式进行验证,使用guest用户进行测试:- 同时启动两个查询线程,则两个查询的状态都为running
- 同时启动3个查询线程,则两个查询的状态为RUNNING,一个状态为QUEUED
- 同时启动6个查询线程,则两个查询的状态为RUNNING,三个状态为QUEUED,还有一个为INSUFFICIENT RESOURCES
Presto中Queue的使用总结
当众多开发者或是测试人员共同使用一个环境时,可能会出现某个人的大量查询把系统资源耗尽的情况,此时可以使用Queue来限制某人的最大连接数,从而达到资源平等的目的。本文对相关配置以及使用做简单的说明