当前位置:网站首页>[Presto] details of the new version upgrade of Presto
[Presto] details of the new version upgrade of Presto
2022-07-28 17:27:00 【kiraraLou】
One 、 Preface
Upgraded version :
The old version :0.220 → The new version : 0.269
Purpose of upgrade :
- The new version does a lot of optimization for the old version , Improve service stability .
- The new version needs to be compatible with the functions of the old version , And transparent to the business side .
- Introduce a stricter memory judgment strategy .
New version upgrade :
- Added a lot of functions
- query.initial-hash-partitions By default 8 Change it to 100
- about hive Of orc Format data has better support
- hive Support for weighing and splitting according to file size , This allows deeper workers to split queues when files are smaller
- Fixed the underlying data format as parquet Inconsistent query results
- Fixed a lot of bug
- For more details about the upgrade, see :https://prestodb.io/docs/current/release/release-0.269.html
The details of the secondary development of the old version are as follows :
- presto Support recursive query hive View (presto Not supported by default hive View function )
- presto password Authentication plug-in ( Self developed plug-ins , be used for python Code client authentication , Only for certification , Permission is not involved )
For compatibility with older versions , And improve stability The new version changes as follows :
| function | Purpose | |
|---|---|---|
| 1 | Support recursive query hive View function | Compatible with older versions |
| 2 | Native password Authentication plug-in | Replace self-developed plug-ins |
| 3 | Support for older versions password Authentication plug-in | Compatible with older versions |
| 4 | modify general memory pool Memory shortage judgment strategy | Improve stability |
| 5 | modify log4j Version of , prevent jni Inject | Security |
| 6 | Use jdk11 | Improve stability |
Upgrade plan :
This upgrade cannot adopt rolling upgrade ( New and old services are incompatible ), Set up a new version service , take presto Hang the soft connection to the new version , Then stop the old version cluster , The new version of the cluster follows the configuration of the old cluster .
Upgrade time :
Because rolling upgrade cannot be adopted , Therefore, the upgrade time is selected in the low peak period
Upgrade steps :
- Bulk copy presto The installation package to /usr/local Under the table of contents => /usr/local/presto-server-0.269
- Bulk copy jdk11 The installation package to /home/rong Under the table of contents => /home/rong/jdk-11.0.14
- Add soft connection ln -s /home/rong/jdk-11.0.14 jdk11
- Update and issue worker Node config.properties The configuration file
- Update and issue condition node config.properties The configuration file
- Initialize the node configuration information script , The purpose is to update worker Node node.properties In the configuration file host Information
- Stop the old cluster service
- Modify the soft connection to the new version service
- start-up & Verify the new version of the service
Upgrade impact :
redash Theory has no effect
tableau Theory has no effect
python Client code Theory has no effect
The fallback program :
Reconnect the soft connection to the old version , Restart the old cluster .
Two 、 Support HIVE View
Refer to the following article , Combined with the new version for transplantation and adaptation (done)
- https://github.com/prestodb/presto/pull/9031
- https://blog.csdn.net/hjw199089/article/details/81415444
3、 ... and 、 Insufficient memory judgment strategy
1 When does the cluster run out of memory ?

remarks : because RESERVED_POOL The... Is not enabled in the configuration file , So the judgment condition is only GENERAL_POOL Whether there are blocking nodes
2 What conditions determine whether the node is blocked ( Out of memory )?

if (poolInfo.getFreeBytes() + poolInfo.getReservedRevocableBytes() <= 0) {
blockedNodes++;
}
Purpose : In order to trigger the memory protection strategy faster .

modify :
Turned out to be poolInfo.getFreeBytes <= 0, Change to less than pool MaxByte Of 80%, Trigger the memory protection policy in advance 
This function is aimed at GENERAL_POOL The changes to the , It can't be solved completely OOM The problem of , Because part of the memory is Presto Can't be monitored , So there are still nodes OOM The risk of .
Reference resources :
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/
Four 、password-file-authenticators plug-in unit
This plug-in is a custom plug-in , It is used for identity authentication . Do not do permission management .
This plug-in has the same functions as password-authenticators The functions of official plug-ins are basically the same .
difference :
password-file-authenticators The user name and password of the plug-in are clear text

password-authenticators The password of the plug-in is ciphertext

Custom developed plug-ins have also been ported and adapted in the new version , At present, both plug-ins can be used . The function is the same .
边栏推荐
- Verilog daily question (vl14 vending machine 1 -- FSM common question types)
- Source code of voice live broadcast app
- 《Kubernetes》你需要掌握的 Service 和 Ingress
- Role of Fortress machine
- 如何在构建阶段保护镜像安全
- The practice of the beego framework of goweb development: Section II project initialization configuration
- Verilog 每日一题(VL29 单端口RAM)
- 零基础利用Unity3D开发AR应用并远程下载3D模型
- Unity shader global fog effect
- Goweb开发之Beego框架实战:第二节 项目初始化配置
猜你喜欢

Verilog daily question (vl29 single port RAM)

Round 1C 2022 - Code jam 2022 b.square (Mathematics, thinking)

Use of influxdb2

Message Passing for Complex Question Answering over Knowledge Graphs

我为什么选择使用Go语言?

High speed circuit design practice -- Overview

格雷码和二进制的转换及典型例题(4bits格雷码计数器)

WPF command button transparent style

Verilog 每日一题 (VL28 加减计数器)

带参数的微信小程序二维码生成
随机推荐
解决SQL Server数据库独占的问题
Asynchronous circuit design -- principle and example of synchronous pulser
火了 2 年的服务网格究竟给微服务带来了什么?(转载)
线性代数及矩阵论(十)
使用阿里云免费的SSL证书
Vscode界面介绍
Function接口之andThen
Codeforces round 770 (Div. 2) e. fair share
Kubernetes service and ingress you need to master
DGL Chapter 1 (official tutorial) personal notes
Verilog daily question (vl8 uses generate... For statement to simplify code)
创建自定义分页控件
MySQL detailed learning tutorial (recommended Collection)
部署LAMP平台---Linux,Apache,MySQL,PHP的编译安装
在android开发过程中遇到.sqlite文件处理
Janus series article 3 API usage guide videoroom creating a new video room
Leetcode 2022.04.10 China Merchants Bank special competition D. store promotion (DP)
Verilog 每日一题 (VL24 多bit MUX同步器 跨时域输出)
【kibana】问题整理 kibana 7.x No indices match pattern “apm-*“
UNIQUE VISION Programming Contest 2022(AtCoder Beginner Contest 248)G. GCD cost on the tree