presto参数优化

耀灵2年前技术文章2473

总体参数

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


相关文章

MySQL的数据拆分

MySQL的数据拆分

一、拆分的概念数据拆分当数据过大,存储、SQL性能达到瓶颈;或多个业务共用一个数据库实例,一个小功能故障导致整个系统瘫痪;为解决类似问题,需考虑对数据进行拆分;粗一级的拆分,针对的是业务系统,将不同业...

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

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

2安全方案2.1 Knox访问控制Apache Knox是一个通过REST API和UI与Apache Hadoop 部署交互的应用网关。Knox网关为所有与Hadoop集群的REST和HT...

将Nexus作为容器镜像仓库的配置过程

将Nexus作为容器镜像仓库的配置过程

Docker,Helm和Kubernetes的简化容器管理Nexus Repository建立在广泛的企业存储功能之上,是适用于所有Docker镜像和Helm Chart存储库的强大的注册表。Nexu...

Redis Sentinel与Cluster安装部署(三)

4.3redis-cluster-resharding重新分配槽1、查看当前集群节点状态信息 # redis-cli --cluster check 172.32.1.59:7000 -a dt20...

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

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

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

Docker镜像是有仓库

在Docker中,当我们执行 docker pull xxx 的时候 ,它实际上是从 hub.docker.com 这个地址去查找,这就是 Docker 公司为我们提供的公共仓库。在工作中,我们不可能...

发表评论    

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