Presto中Queue的使用总结

时间:2021-04-11 16:55:52
当众多开发者或是测试人员共同使用一个环境时,可能会出现某个人的大量查询把系统资源耗尽的情况,此时可以使用Queue来限制某人的最大连接数,从而达到资源平等的目的。本文对相关配置以及使用做简单的说明
  1. 配置
    1. 添加配置文件,文件格式为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"      ]     }     ]   
    2. 修改配置,修改Presto/etc/config.properties,添加以下配置
      query.queue-config-file=/opt/PaaS/Talas/lib/Presto/etc/queue_config.json
    3. 重启Presto Server
  2. 验证
    使用多线程的方式进行验证,使用guest用户进行测试:
    1. 同时启动两个查询线程,则两个查询的状态都为running
    2. 同时启动3个查询线程,则两个查询的状态为RUNNING,一个状态为QUEUED
    3. 同时启动6个查询线程,则两个查询的状态为RUNNING,三个状态为QUEUED,还有一个为INSUFFICIENT RESOURCES

相关文章