您现在的位置是:首页 >学无止境 >四、Trino406系列 之 问题集锦网站首页学无止境

四、Trino406系列 之 问题集锦

京河小蚁 2023-06-17 16:00:02
简介四、Trino406系列 之 问题集锦

io.trino.jdbc. i n t e r n a l . c l i e n t . F a i l u r e I n f o internal.client.FailureInfo internal.client.FailureInfoFailureException:打开的文件过多;

vim /etc/security/limits.conf
trino soft nofile 131072
trino hard nofile 131072

io.trino.jdbc. i n t e r n a l . c l i e n t . F a i l u r e I n f o internal.client.FailureInfo internal.client.FailureInfoFailureException: Connection Timeout

vim config.properties

query.client.timeout=20m    // default 5m
task.client.timeout=60s		// default 10s

这个问题可以在这里找到答案 Set query client timeout (Like Presto’s query.client.timeout)

io.trino.jdbc. i n t e r n a l . c l i e n t . F a i l u r e I n f o internal.client.FailureInfo internal.client.FailureInfoFailureException: Recorded length is 65536 bytes but actual length after decompression is 60083 bytes: offset=0

这个问题是在trino,跑批作业在计算的时候报错了,字面意思是记录长度65536字节,解压后实际长度60083字节:offset=0, 发生这种问题多半是丢包了,但是至于怎么丢的,那么情况就多了,网络,磁盘都有可能,这个问题后来经查证是平台在对磁盘扩容,再发生这种问题,只能重试。

hdfs的io瓶颈问题导致trino查询慢(其中hive表设计也不合理)

每次拉取的数据量比较大,hdfs集群的配置比较低,hdfs多台datanode节点的多个磁盘发生io满负荷运行,trino本来splits就多,限于hdfs io的问题拉取的又慢,在边拉边计算的情况下达不到目标响应时间,为此专门做了以下优化
a. 重构分区分桶表,然后将数据导入到新表中,这样做的好处是,根据每个sql的查询条件能够精准命中数据;
b. 开启本地缓存策略:首先每台worker节点添加磁盘,然后修改配置
在hive.properties配置中加
hive.cache.enabled=true;
hive.cache.location=/data/trino/hive-cache

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。