presto参数优化

耀灵2年前技术文章2788

总体参数

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处理时间比较短,可适当增加该值。

原参数:

1.png

trino版

query.max-run-time


修改参数


调整配置文件,使其永久生效。

query.max-execution-time

2.png

修改参数

#直接执行set语句
set session query_max_execution_time = value;

eg:


但是只在会话中生效,会话关闭后恢复默认值。

调整配置文件,使其永久生效。

3.png

-------------------------------------------------------------------------------

客户原本配置文件内容

config.properties

4.png

catalog/hive.properties

5.png


修改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

6.png


验证参数生效;

7.png

修改hive.properties配置文件

#控制cache的存活时间,默认设为0s,表示不启用这种cache机制
hive.metastore-cache-ttl=1s 

#控制cache自动刷新的频率,默认为0s.适当增大这两个参数也可提高查询效率
hive.metastore-refresh-interval=1s


8.png

未修改之前查询时间:

9.png

presto进行重启

/opt/cloudera/parcels/presto/bin/launcher restart


相关文章

scylladb简单命令介绍

一、cql 命令查看版本SHOW VERSION查看连接的数据库地址SHOW HOST批量执行.cql文件中的命令SOURCE '/home/thobbs/commands.cql'开启和关闭命令追踪...

canal原理及使用

canal原理及使用

什么是canalcanal,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。这里我们可以简单地把canal理解为一个用来同步增量数据的一个工具。工作原理MySQL主备复制原理M...

开源大数据集群部署(二十)Trino部署

开源大数据集群部署(二十)Trino部署

2.9.1 解压trino的包到opt目录cd /root/bigdata tar -xzvf trino-server-389.tar.gz -C /opt/ ln -s /opt/trino-...

OSS bucket权限设置

OSS bucket权限设置

问题描述调用oss的bucket资源,开始的时候可以访问,过几分钟再访问的时候,就提示拒绝访问问题原因是因为相应的bucket权限为私有,私有权限在访问文件对象时,是存在鉴权URL,存在时间有效性,所...

xx客户大数据相关问题答疑

xx客户大数据相关问题答疑

1、官方发布的补丁是否可以在CDH5.X上patch?如果是cdh的包,需要在cdh官方给出相关补丁包,然后我们可以进行补丁操作。如果是开源的包,是无法进行补丁操作的,因为cdh会对开源有些细节点的适...

企业级大数据安全架构(十)

企业级大数据安全架构(十)

一、DBeaver连接Kerberos认证下的hive1.配置本地hosts因为Kerberos认证过程及集群服务中,很多是以主机名的形式进行访问的,所以工作机要设置hosts. 域名映射,我们通过部...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。