当前位置:网站首页>[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 .
边栏推荐
- System clock failure of database fault tolerance
- Verilog daily question (vl29 single port RAM)
- Codeforces round 768 (Div. 2) e.paint the middle (greedy / interval relationship processing)
- Differences between CNSA and CASC and CASIC
- Linear algebra and matrix theory (10)
- Linear algebra and matrix theory (7)
- 【presto 】presto 新版本升级详情
- Microservice Architecture - service registry and service gateway (6.8) (Reprint)
- Linear algebra and matrix theory (IX)
- Verilog 每日一题(VL6 数据串转并电路)
猜你喜欢

Verilog daily question (simple implementation of VL30 RAM)

valarray数值库学习

异步FIFO基本原理(基于Verilog的简单实现)

Goweb开发之Beego框架实战:第三节 程序执行流程分析

Unity shader global fog effect

异步电路设计--同步脉冲器原理及例题

Verilog 每日一题(VL29 单端口RAM)

Verilog daily question (vl29 single port RAM)

Proof of the third scene (f) in 22 years

Verilog daily question (vl14 vending machine 1 -- FSM common question types)
随机推荐
堡垒机的作用
创建自定义分页控件
Linear algebra and matrix theory (7)
【sqoop】sqoop1.4.7 安装集成CDH5.13
The 2021 ICPC ASIA Taipei Regional programming contest L. leadfoot (combinatorics /2-adic assignment function +kummer theorem)
Verilog 每日一题(VL8 使用generate…for语句简化代码)
The actual combat of the beego framework of goweb development: Section III program execution process analysis
Valarray Library Learning
C#遍历集合
高速电路中电容的选型和应用——详解
Mysql database addition, deletion, modification and query (detailed explanation of basic operation commands)
System clock failure of database fault tolerance
Verilog 每日一题(VL2 异步复位的串联T触发器--牛客网)
高速电路设计实践——概述
高速电路中电感的选型和应用
Visual Studio 2012/2015发布Web应用连同.cs源码一起发布
格雷码和二进制的转换及典型例题(4bits格雷码计数器)
GEAR: Graph-based Evidence Aggregating and Reasoning for Fact Verification
Jupyter notebook win installation record
线性代数及矩阵论(十)