presto参数优化
总体参数
1)session级别的参数配置 query.max-run-time=600s 在终止查询之前,允许在群集上处理查询的最大时间。时间包括分析和计划的时间,也包括在队列中等待的时间,因此本质上这是自创建以来允许查询存在的时间。 query.max-execution-time=600s 在终止查询之前,在集群上主动执行查询的最大允许的时间,与query.max-run-time相比,执行时间不包括队列中的分析、查询规划或等待时间。 2)数据源为hive,可对Hive metastore配置缓存,可根据实际情况设置缓存时长。 #文件/presto/etc/catalog/hive.properties hive.metastore-cache-ttl 控制cache的存活时间,默认设为0,表示不启用这种cache机制 hive.metastore-refresh-interval 控制cache自动刷新的频率,默认为1ms. 适当增大这两个参数也可提高查询效率 3)#控制每个worker上面最大可以提交多少个split,默认是100 #coordinator config.properties文件 work节点共同配置 node-scheduler.max-splits-per-node #控制每个worker上面最多可以有多少个split处于Pending状态 #coordinator config.properties文件 work节点共同配置 node-scheduler.max-pending-splits-per-task 4)#coordinator config.properties文件和work节点共同配置 task.max-worker-threads 说明:一个worker处理split的最大并发度。 node-scheduler.max-splits-per-node 说明:一个worker处理的最大splits数量 ,超过这个值则task优先发送到其他节点。 默认值:100 建议:如果一个splits处理时间比较短,可适当增加该值。
原参数:
trino版
query.max-run-time
修改参数
调整配置文件,使其永久生效。
query.max-execution-time
修改参数
#直接执行set语句 set session query_max_execution_time = value;
eg:
但是只在会话中生效,会话关闭后恢复默认值。
调整配置文件,使其永久生效。
-------------------------------------------------------------------------------
客户原本配置文件内容
config.properties
catalog/hive.properties
修改config.properties配置文件
#在终止查询之前,允许在群集上处理查询的最大时间。时间包括分析和计划的时间,也包括在队列中等待的时间,因此本质上这是自创建以来允许查询存在的时间。 query.max-run-time=600s #在终止查询之前,在集群上主动执行查询的最大允许的时间,与query.max-run-time相比,执行时间不包括队列中的分析、查询规划或等待时间。 query.max-execution-time=600s node-scheduler.max-splits-per-node=200 #控制每个worker上面最多可以有多少个split处于Pending状态 node-scheduler.max-pending-splits-per-task=200 #说明:一个worker处理split的最大并发度。 task.max-worker-threads=128
验证参数生效;
修改hive.properties配置文件
#控制cache的存活时间,默认设为0s,表示不启用这种cache机制 hive.metastore-cache-ttl=1s #控制cache自动刷新的频率,默认为0s.适当增大这两个参数也可提高查询效率 hive.metastore-refresh-interval=1s
未修改之前查询时间:
presto进行重启
/opt/cloudera/parcels/presto/bin/launcher restart