presto
文章平均质量分 66
kiraraLou
这个作者很懒,什么都没留下…
展开
-
【presto】presto 参数配置优化
前言之前公司的 presto 服务一直不是很稳定,随着资源组,配置优化,代码二次开发。presto 服务基本上已经趋于稳定了。这个记录下 presto 服务参数配置都做过哪些优化。这边生产环境的 JVM 都是配置为 40G。config.properties禁用保留池Reserved Pool : 当有一个worker的General Pool 内存耗尽,reserved pool将会发挥作用。这个时候coordinator 将会选出集群出消耗内存最大的查询,并将该查询分配给所有worker的原创 2022-03-23 10:28:05 · 3197 阅读 · 0 评论 -
【presto 】presto OOM问题处理回顾和升级方案
一、前言升级版本:旧版本:0.220 → 新版本: 0.269升级目的:新版本对于老版本做了很多优化,提高服务稳定性。新版本需要兼容老版本的功能,并且对业务方是透明的。引入更为严格的内存判断策略。新版本提升:增加了很多函数query.initial-hash-partitions 由默认的8 改为 100对于hive的orc格式数据有更好的支持hive可以根据文件大小进行称重拆分的支持,从而在文件较小时允许更深的工作人员拆分队列修复了底层数据格式为parquet查询结果不一原创 2022-03-16 14:21:44 · 4377 阅读 · 0 评论 -
【presto】presto使用Java Keystores认证及测试代码
前言presto 集群使用password插件进行身份认证,及测试代码。如果使用 Kerberos 、 LDAP 身份验证时,必须通过 HTTPS 访问 Presto 协调器。Presto 协调器使用Java Keystore文件进行 TLS 配置。这些密钥是使用keytool生成的,并存储在 Presto 协调器的 Java Keystore 文件中。实践生成keystore.jks 文件keytool -genkeypair -alias presto -keyalg RSA -keysto原创 2022-01-19 20:21:12 · 1638 阅读 · 1 评论 -
【presto】presto 常用的命令
前言连接命令java -jar presto-cli-0.269-SNAPSHOT-executable.jar --server localhost:8080 --catalog hive–server 是presto服务地址;–catalog 是默认使用哪个数据源,后面也可以切换,如果想连接mysql数据源,使用mysql数据源名称即可;–user 是用户名;查看信息查看数据源(catalog)show catalogs;查看schemasshow schema原创 2022-01-14 15:47:36 · 2510 阅读 · 0 评论 -
【presto】presto 0.269版本支持查询hive视图功能
前言presto 是不支持查询HIVE 视图的,因为presto 官方认为HQL 和 SQL 通常具有不同的语义(类型强制规则、函数行为、空值处理)。可能会导致两个引擎之间的查询结果不同。但是我们这里只是简单支持将视图里面的sql内容解析出来,然后进行查询。也参考了网上很多的实现案例,因为新版本代码相较老版本代码还是有部分改动,所以无法照搬。还是需要整理并调试下。具体代码参见:https://gitee.com/second-floor/presto参考文章:https://github.com原创 2022-01-13 13:41:25 · 1923 阅读 · 0 评论 -
【presto】presto编译报错整理(大全)
前言:编译presto 报错,报错内容如下:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.0.0:check (checkstyle) on project presto-hive-metastore: You have 1 Checkstyle violation. -> [Help 1][ERROR] [ERROR] To see the full stack trace原创 2021-12-30 16:22:20 · 3445 阅读 · 0 评论 -
【presto】监控presto打开文件描述符脚本
前言最近在维护presto集群,集群运行一段时间后,会有部分节点打开的文件描述符超出linux的限制。有的人想到会去增加进程打开文件数的限制。但根据我的排查,这个原因一般是在presto 服务OOM后发生的,此时服务虽然没有挂掉,但其实已经处于不稳定的状态了。很容易让任务挂掉。于是决定监控下presto的打开文件描述符,经过观察,公司的presto集群通常打开的文件描述符是在1万5一下。遂将监控报警阈值调整为2万。一、脚本内容#!/bin/bash# presto_file_descripto原创 2021-09-15 13:40:25 · 322 阅读 · 0 评论 -
【presto】presto查询报错整理
问题一:报错内容:Error running query: Corrupted statistics for column "[firstcontactsname] optional binary " in Parquet file "hdfs://nameservice1/user/hive/warehouse/riskn.db/ads_baihang_order_001_01/etl_dt=2021-09-12/000014_0": [min: 0xE4B881E4B89AE697BA, max原创 2021-09-14 13:35:18 · 5161 阅读 · 0 评论 -
【redash】redash 提交查询任务后显示一直在Executing query,其实任务并没有真正的提交到后台解决办法
一、前言:最近在使用 redash 查询 presto 任务时,遇到一个问题,这里整理并记录一下。二、问题详情:redash 界面查询一直显示Executing query … 并且很长的一段时间都没有返回结果,查看presto web 界面也没有看到有任务的提交,并且点击cancel 按钮无法取消任务。别的查询任务不影响,并且有问的题查询任务sql 使用别名,或者更换数据源(redash的data source)就可以顺利运行。问题查询任务过了很长一段时间(12小时后),重新执行可以顺利执行成功原创 2021-09-13 13:48:41 · 1353 阅读 · 0 评论 -
【presto】方法二:presto实现自定义UDF函数
前言:接上文:https://blog.csdn.net/Mrerlou/article/details/119995646之前编写presto函数是在presto代码工程下新建模块,然后进行自定义函数开发。但是使用这种方法,在maven 编译时会遇到很多的报错,大多是格式文件,如头文件没有Licensed信息,有多个换行,文件结尾没有换行,文件结尾有多个空行,诸如此类的格式文件搞的人很头疼。虽然最后成功编译,但是感觉这种方法,比较麻烦。然后网上有基于新建项目的方式来完成函数开发的方法,这种测试后原创 2021-08-30 15:39:39 · 826 阅读 · 2 评论 -
【presto】方法一:presto实现自定义UDF函数,及遇到的问题
一、前言:presto较hive的函数来说比较少,所以为了实现逻辑需要写很复杂的sql逻辑来实现业务。这里在进行presto 函数开发的时候遇到了很多的问题,以大小写转换为例。写个插件,并且将遇到的问题整理并记录一下。二、环境准备:1. 下载presto代码。下载与线上生产环境presto版本一致的代码,导入idea。2. 新建一个module新建一个module命名为demo,然后groupId最好命名为com.facebook.presto。3. pom文件<?xml ver原创 2021-08-30 15:20:28 · 2197 阅读 · 1 评论 -
【presto】使用presto客户端导出csv
前言:最近要将数据通过presto进行导出。我们使用的是redash来作为可视化查询工具,但是redash导出文件有限制。这里使用presto 客户端来进行数据导出。准备 :数量量较大时命令行接口(Command Line Interface)下载presto-cli-xxx-executable.jar,然后重命名为presto,执行./presto --help,会有相关可利用选择。我们使用 --execute 执行命令导出csv。例如:presto --server ip:port --ca原创 2021-08-27 14:51:36 · 1819 阅读 · 2 评论 -
【presto】presto 查询hive分桶表问题
前言在使用presto查询 hive的分桶表时,遇到报错,这里整理并记录一下。报错内容Error running query: Hive table 'tj_tmp.student_bucket' is corrupt. The number of files in the directory (16) does not match the declared bucket count (4) for partition: <UNPARTITIONED>问题原因先说结论:pres原创 2021-08-11 19:54:57 · 1968 阅读 · 0 评论 -
【presto】使用python执行presto任务
前言目前发现有两个驱动包,分别是:pyhive : https://github.com/dropbox/PyHivepresto-python-client : https://github.com/prestodb/presto-python-client这里项目使用的是presto-python-client,毕竟是官方的。而且我这里访问的Presto集群是需要用户名密码进行https认证。环境准备python2.7presto-python-client安装 pip inst原创 2021-08-10 13:58:15 · 2035 阅读 · 0 评论 -
【Presto】转载 Presto Web UI
前言Presto Web UI 可以用来检查和监控Presto集群,以及运行的查询。他所提供的关于查询的详细信息可以更好的理解以及调整整个集群和单个查询。需要注意的是,Presto Web UI所展示的信息都来自于Presto系统表,关于Presto系统表之后文章中再补充,这里不再多说;当你进入Presto Web时,你将会看到如同1所示的界面:主要分为上下两部分,上面描述了集群信息,下面是查询列表;首页集群信息Running Queries当前在集群中正在执行的查询的个数。包含所有用户提交原创 2021-06-29 11:52:25 · 417 阅读 · 0 评论 -
【presto】presto集群OOM和调用杀手之间的延迟
前言:presto 集群配置了JVM dump 策略,当节点发生内存不足时,会生成这个文件。也就是说出现这个文件,说明节点发生了内存溢出。观察节点什么发生OOM从下图中可以发现:在06-25 09:21 时 10.21.4.205 节点发生了内存溢出。在06-25 09:26 时 10.21.18.25 节点发生了内存溢出。根据我们设置的内存不足保护策略query.low-memory-killer.policy=total-reservation应该会在 节点发生内存溢出时,kill掉占原创 2021-06-25 17:30:04 · 580 阅读 · 7 评论 -
【presto】转载:Presto内存管理相关参数设置
背景之前介绍过Presto内存管理和分配策略,但是那个是0.192版本,详细见:Presto内存管理原理和调优 ,0.201之后内存管理作了新的修改,所以重新简单分析下,然后给出一个配置模板,希望对使用Presto的同学有帮助。两种内存Presto里面内存只有2种内存,一种是user memory,另一种是system memory。system memory用于input/output/exchange buffers等,user memory 用于hash join、agg这些。内存池0.20转载 2021-06-18 15:01:48 · 777 阅读 · 1 评论 -
【presto】转载:Presto集群内存不足时保护机制
presto内存pool分布为了防止集群里节点OOM,Presto有个循环线程来获取当前集群节点和集群整体内存占用情况。我们知道Presto里分为RESERVED_POOL和GENERAL_POOL。判断节点是否阻塞(内存不足):如果使用RESERVED_POOL(意思是说最大SQL使用这个POOL),那判断集群内存超出内存的方法就是:RESERVED_POOL内存被SQL占用了GENERAL_POOL里有被阻塞的Node因为RESERVED_POOL会导致内存浪费,我们集群配置参数转载 2021-06-18 14:56:10 · 811 阅读 · 0 评论 -
【presto】presto集群频繁OOM问题排查
前言:今天早上09:30-09:40时分,presto集群又出现了多个worker节点OOM然后服务挂掉的问题。集群此时非常的不稳定。看来了下节点的日志,是发生了内存堆溢出java.lang.OutOfMemoryError: Java heap spaceDumping heap to java_pid171589.hprof ...那么先观察一下这段时间跑的任务。由于公司的presto集群是配置了内存不足的保护策略的query.low-memory-killer.policy=total-原创 2021-06-18 14:10:23 · 1965 阅读 · 1 评论 -
【presto】测试各种优化建议对presto性能的提升
使用大表 join 小表对性能的提升案例一:原sql:selectt3.repay_dt,count(1),count(case when t3.his_had_overdue=1 then a.loan_id end),count(case when t3.his_had_overdue=1 then a.loan_id end)*1.0000/count(1) ,try(count(case when DATE_DIFF('day',t3.repay_dt,cast(t3.etl_dt原创 2021-06-07 18:29:43 · 517 阅读 · 0 评论 -
[Presto]presto REST API
v1/cluster获取集群整体信息GET /v1/cluster案例:http://dx-spark09.dx:8080/v1/node获取集群资源池信息GET /v1/cluster/memory案例:http://dx-spark09.dx:8080/v1/cluster/memory/获取worker节点资源池信息GET /v1/cluster/workerMemory案例:http://dx-spark09.dx:8080/v1/cluster/worker原创 2021-05-13 17:09:33 · 1623 阅读 · 0 评论 -
presto安装集成kerberos
安装下载安装包presto官网:https://prestodb.io/presto-server下载连接:https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.248/presto-server-0.248.tar.gzpresto-cli客户端下载连接:https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.248/presto-cli-0.2原创 2021-03-29 15:49:19 · 800 阅读 · 0 评论