一、前言

升级版本:
旧版本:0.220 → 新版本: 0.269

升级目的:

  1. 新版本对于老版本做了很多优化,提高服务稳定性。
  2. 新版本需要兼容老版本的功能,并且对业务方是透明的。
  3. 引入更为严格的内存判断策略。

新版本提升:

  1. 增加了很多函数
  2. query.initial-hash-partitions 由默认的8 改为 100
  3. 对于hive的orc格式数据有更好的支持
  4. hive可以根据文件大小进行称重拆分的支持,从而在文件较小时允许更深的工作人员拆分队列
  5. 修复了底层数据格式为parquet查询结果不一致问题
  6. 修复了大量bug
  7. 更多有关升级内容详情见:https://prestodb.io/docs/current/release/release-0.269.html

老版本二次开发详情如下:

  1. presto 支持递归查询 hive视图 (presto默认是不支持hive视图功能的)
  2. presto password 认证插件 (自开发插件,用于python 代码客户端的身份认证,只做认证,不涉及到权限)

为了兼容老版本,以及提高稳定性 新版本改动如下:

功能 目的
1 支持递归查询hive视图功能 兼容老版本
2 原生的password 认证插件 替代自开发插件
3 支持老版本 password 认证插件 兼容老版本
4 修改 general memory pool的内存不足判断策略 提高稳定性
5 修改log4j的版本,防止jni注入 安全性
6 使用jdk11 提高稳定性

升级方案:

此次升级无法采用滚动升级(新老服务不兼容),搭建一套新版本服务,将 presto 软连接挂到新版本上,然后停掉老版本集群,新版本集群沿用旧集群的配置。

升级时间:

由于无法采用滚动升级,所以升级时间选择在业务低峰期进行

升级步骤:

  1. 批量拷贝 presto 安装包到 /usr/local 目录下 => /usr/local/presto-server-0.269
  2. 批量拷贝 jdk11 安装包到 /home/rong 目录下 => /home/rong/jdk-11.0.14
  3. 添加软连接 ln -s /home/rong/jdk-11.0.14 jdk11
  4. 更新下发 worker 节点的config.properties 配置文件
  5. 更新下发 condition 节点config.properties 配置文件
  6. 初始化节点配置信息脚本,目的是更新 worker 节点的node.properties 配置文件中的host信息
  7. 停止旧集群服务
  8. 修改软连接到新版本服务
  9. 启动&验证新版本服务

升级影响:

redash 理论无影响
tableau 理论无影响
python 客户端代码 理论无影响

回退方案:

将软连接重新挂回旧版本,重新启动旧集群。

二、支持HIVE视图

参考以下文章,并结合新版本进行移植适配 (done)

  • https://github.com/prestodb/presto/pull/9031
  • https://blog.csdn.net/hjw199089/article/details/81415444

三、内存不足判断策略

1什么时候集群内存不足?

备注: 由于 RESERVED_POOL 配置文件中没有开启,所以判断条件就只剩 GENERAL_POOL 是否出现阻塞节点

2 什么条件判断节点是否阻塞(内存不足)?

if (poolInfo.getFreeBytes() + poolInfo.getReservedRevocableBytes() <= 0) {blockedNodes++;
}

目的:为了更快的触发内存保护策略。

修改:
原来是 poolInfo.getFreeBytes <= 0, 改为小于pool MaxByte的80%,提前触发内存保护策略

此功能是针对与 GENERAL_POOL的改动,并不能完全解决 OOM的问题,因为还有一部分内存是Presto 无法监控到的,所以节点还是有OOM的风险。

参考:

  • http://armsword.com/2020/02/18/presto-memory-kill-policy/

  • http://armsword.com/2018/05/22/the-memory-management-and-tuning-experience-of-presto/

  • http://armsword.com/2019/11/13/the-configuration-settings-of-presto-memory-management/

四、password-file-authenticators 插件

此插件为自定义插件,目的是用来进行身份认证。并不做权限管理。

此插件功能与password-authenticators 官方插件功能基本一致。

区别:
password-file-authenticators 插件的用户名密码为明文

password-authenticators 插件的密码为密文


自定义开发的插件也已经在新版移植适配过了,目前两种插件都可以使用。功能是一样的。

【presto 】presto 新版本升级详情相关推荐

  1. PyTorch 0.4新版本 升级指南 no_grad

    PyTorch 0.4新版本 升级指南 [导读]今天大家比较关心的是PyTorch在GitHub发布0.4.0版本,专知成员Huaiwen详细讲解了PyTorch新版本的变动信息, 本次升级, 只做了 ...

  2. [转] PyTorch 0.4新版本 升级指南 no_grad

    转自PyTorch 0.4新版本 升级指南,博主为ShellCollector. PyTorch 0.4新版本 升级指南 PyTorch 终于从0.3.1升级到0.4.0了, 首先引入眼帘的,是PyT ...

  3. 号外号外!自动化测试工具AutoRunner V4.2 新版本升级预告!

    自动化测试工具AutoRunner一直以来在各种技术程序的自动化测试中起着重要的作用,应广大用户的要求,产品的功能点做了升级. 本次升级的最大特点在于提升浏览器的兼容性和C/S端程序的执行效率,优化视 ...

  4. [Presto]presto REST API

    前言 整理presto-0.220版本的 rest api,目前只整理如下,详细的REST API可以查看presto源码 v1/cluster v1/status v1/worker v1/info ...

  5. 大数据面试:面试官要求我了解过Presto——Presto到底是个什么东西

    前言 大家好,我是程序员manor,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人. 事情是这样的 我在实习僧App上发现一家公司非常匹配我的需求~ 城市匹配 技能匹配 ...

  6. 【版本更新】IM 4.3.0新版本升级上线!

    网易云IM SDK 4.3.0已发布,本期对SDK.UIKit.Demo都进行了全面更新. 各端主要更新如下: Server 将创建网易云通信ID接口 和 更新用户名片接口 进行了整合,创建用户帐号更 ...

  7. 免费试用!人人都能轻松上手的AI绘画工具,新版本升级

    AIGC(AI Generated Content,即人工智能生产内容)赛道,正在以一种新的方式出圈--AI绘画. 继飞盘.露营之后,年轻人又爱上了AI绘画,用这项新技术"创作"属 ...

  8. 新版本升级 | ODX自动转换工具——VisualODX 2.4

    自VisualODX1.0软件发布以来,得到诸多客户广泛使用及充分肯定,VisualODX将Excel文件直接转换为ODX/PDX格式文件,支持使用标准的Excel诊断调查表来描述ECU的诊断规范,将 ...

  9. Ableton Live 11 Suite for Mac新版本升级

    Ableton Live 11 Suite中最新改进内容 1.安排 现在可以通过按住Shift键的同时拖动边框来延伸变形排列音频剪辑. 现在可以使用左/右箭头键在时间选择内移动布置剪辑.要切换网格捕捉 ...

最新文章

  1. 3分钟内快速部署MySQL5.6.35数据库实践
  2. PacificA 一致性协议解读
  3. 龙门吊matlab,龙门吊车重物防摆双闭环PID控制设计.doc
  4. 《SpringBoot从菜鸟到老鸟》之SpringBoot 如何配置全局的异常捕获
  5. C# 通过Exchange server 发送邮件
  6. sql数据库中有多列重复的数据查询
  7. 【讨论】对技术的掌握到底应该又多深?
  8. 浏览器汇总介绍--Opera
  9. 从零开始学英语 (洪恩教学光盘 8CD)
  10. Chrome插件开发(chrome-extension)
  11. html顺序播放mp3,完美:按顺序播放mp3的方法是什么?如何更改U盘中歌曲的播放顺序...
  12. 跟随鼠标移动-demo
  13. 新概念二册 Lesson 15 Good news佳音 ( 陈述句直接引语变间接引语)
  14. 银联收单清算体系及处理流程
  15. 在我们身边的交互式设计失败的例子
  16. 2014春招CVTE面试经历
  17. Qt编写可视化大屏电子看板系统14-标准曲线图
  18. 7-5 分钟秒钟的时间相减 (10 分)
  19. EI 期刊目录 下载和查询方法(很简单)
  20. java使用idea编译或者打包时出现There are test failures

热门文章

  1. faxicon.ico制作(笔记)
  2. 说话技巧:成为谈话高手必不可少的十个特点
  3. 前端必备知识储存——HTML篇一(面试常考)
  4. 重装 Macos sierra系统 U盘
  5. 市场调研报告-皮革离型纸市场现状及未来发展趋势
  6. DataFun活动回顾 | 画像在外卖智能调度的实践-详细版
  7. 王者服务器维护6月8日,《NBA范特西-王者篇》6月8日维护公告
  8. Android 悬浮窗口(及解决6.0以上无法显示问题)
  9. 09年软件评测师考试下午试题答案
  10. c语言中的less函数,less的小白入门介绍