新闻详情

新闻详情

首页 / 资讯中心 / 详情

Presto 0.242.1 版本解析:启动期 Function Namespace 与 Thrift 配置缺陷,以及加密 DWRF 表读取的 NPE 修复

发布时间:2026/11/6 17:23:03来源:尧图网络
Presto 0.242.1 版本解析:启动期 Function Namespace 与 Thrift 配置缺陷,以及加密 DWRF 表读取的 NPE 修复
大数据数据库后端【免费下载链接】prestoThe official home of the Presto distributed SQL query engine for big data项目地址https://gitcode.com/gh_mirrors/pre/presto点击查看免费下载Presto 0.242.1 是一个聚焦缺陷修复的补丁版本核心解决两大问题一是启用 Function Namespace Manager 但未配置 Thrift 时服务启动失败PR 15501二是读取加密 DWRF 表时查询可能抛出NullPointerException。本文以官方发布说明为主体结合仓库中的 Function Namespace Manager 实现、静态配置加载逻辑与 ORC/DWRF 加密读取链路源码逐条还原这两处问题的成因、修复方向与规避手段帮助读者在升级或排查问题时做到心中有数。说明本仓库为 Presto 的当前主干版本release-0.242.1 发布说明对应的代码此后已有大量演进。文中对问题成因的分析依据当前源码结构进行合理推断具体以你实际部署版本的代码为准。版本 0.242.1 概览发布说明presto-docs/src/main/sphinx/release/release-0.242.1.rst版本定位0.242 系列的缺陷修复补丁patch release不含新增功能特性。修复范围启动缺陷启用 Function Namespace Manager 且未配置 Thrift 时服务无法正常启动PR 15501。Hive 读取缺陷读取加密 DWRF 表时查询可能以NullPointerException失败。警告启用 Function Namespace Manager 时启动失败的已知缺陷发布说明以.. warning::形式标记了首个问题属于已知缺陷known bug如果启用了 Function Namespace Manager 且未配置 Thrift会导致启动失败PR 15501。什么是 Function Namespace ManagerFunction Namespace Manager 是 Presto 用于管理用户自定义 SQL 函数UDF命名空间的核心机制。它负责在函数名与函数定义之间建立映射并驱动远程函数执行。当前仓库中该功能的插件注册于 FunctionNamespaceManagerPlugin.java对外暴露三类工厂MySqlFunctionNamespaceManagerFactory基于 MySQL 存储函数元数据JsonFileBasedFunctionNamespaceManagerFactory基于 JSON 文件定义函数RestBasedFunctionNamespaceManagerFactory基于 REST 服务托管函数。启用方式是在etc/function-namespace/目录放置形如xxx.properties的配置文件仓库自带的示例 example.properties.example 如下function-namespace-manager.namemysql database-urljdbc:mysql://localhost:3306 function-namespaces-table-nameexample_function_namespaces functions-table-nameexample_sql_functions启动加载链路与缺陷成因推断从源码结构看Presto 启动时由 StaticFunctionNamespaceStore.java 扫描配置目录下所有.properties文件读取每个文件校验其中必须包含function-namespace-manager.name属性否则直接抛出checkState异常将属性连同命名空间名交给FunctionAndTypeManager.loadFunctionNamespaceManager(...)完成管理器实例化与注册。在presto-function-namespace-managers模块中SQL 函数的实际远程执行依赖 Thrift 协议相关实现集中在 execution/thrift 包下包括ThriftSqlFunctionExecutor、SimpleAddressThriftSqlFunctionExecutionModule以及ThriftSqlFunctionExecutionConfig。其中ThriftSqlFunctionExecutionConfig通过Config(thrift-page-format)暴露了thrift-page-format配置项默认PRESTO_THRIFT。由此可以推断PR 15501 描述的缺陷发生在管理器实例化阶段——当 Function Namespace Manager 被启用、函数执行器依赖 Thrift 地址解析与执行模块初始化时若集群从未配置任何 Thrift 相关服务例如未部署 Thrift UDF Server也未提供对应的地址选择与 thrift 端点配置依赖注入环节会抛出异常最终导致 Presto 进程启动即失败。升级与部署规避建议评估必要性若集群没有启用 UDF Function Namespace不受该缺陷影响仅在etc/function-namespace/下配置了管理器且依赖 Thrift 执行函数时才会命中。升级策略0.242.1 的发布说明仅对问题做了 warning 提示并未在本补丁中声明修复若已修复通常会以 Fixed 条目列出。建议先在小规模测试集群验证启动行为如确实需要 Function Namespace 能力提前配置好对应的 Thrift UDF 服务及参数再升级密切跟踪后续 release note 中对该 PR 的修复声明。Hive 变更加密 DWRF 表读取的 NullPointerException 修复Hive Changes 一节是本版本唯一明确声明修复的缺陷修复读取加密 DWRF 表时查询可能以NullPointerException失败的问题。DWRF 加密在 Presto 中的实现DWRF 是 Presto 生态中基于 ORC 扩展的存储格式其加密能力在presto-orc模块中实现关键类包括DwrfDataEncryptor.java数据加密器抽象DwrfEncryptionProvider.java按KeyProviderCRYPTO_SERVICE/UNKNOWN返回对应加密库未配置时抛出UnsupportedOperationExceptionDwrfKeyProvider.java根据节点类型ListOrcType返回节点 - 中间密钥映射EMPTY常量表示无密钥DwrfEncryptionInfo.java 与 DwrfWriterEncryption.java分别承载读取侧与写入侧的加密配置。读取侧的核心链路位于 AbstractOrcRecordReader.java构造时接收dwrfEncryptionGroupMap加密组 - 列映射与columnToIntermediateKeyMap列 - 中间密钥映射并通过createIntermediateKeysMap组装中间密钥随后调用checkPermissionsForEncryptedColumns(...)校验当前查询涉及的列是否具备解密权限。NPE 的典型成因基于源码推断AbstractOrcRecordReader的构造过程存在多处空值敏感点例如columnToIntermediateKeyMap或dwrfEncryptionGroupMap为null时ImmutableMap.copyOf或后续哈希表访问会直接触发 NPE文件元数据中声明了加密组但读取侧没有提供对应的中间密钥映射checkPermissionsForEncryptedColumns在校验查询列是否属于加密组时可能因缺失键而返回空引用加密组映射与中间密钥映射不一致时createIntermediateKeysMap遍历dwrfEncryptionGroupMap.values()并按组号取密钥取不到时产生空条目进入StripeReader解密阶段后引发 NPE。这些场景在正常加密 DWRF 表上多因元数据与密钥配置不一致或查询计划裁剪后列集合与加密组不匹配而触发0.242.1 正是针对其中一种可稳定复现的路径做了修复。仓库中的测试 TestDecryption.java 以及OrcTester中与encrypt/Encryption相关的用例可作为理解加密读写行为与回归覆盖的参考。对使用方的影响与建议该问题只影响启用了 DWRF 加密的 Hive 表普通 ORC/DWRF 表不受影响升级到 0.242.1 后建议在测试环境对加密表执行SELECT尤其是只投影部分列的查询做回归验证确认不再出现NullPointerException若仍需排查此类问题可从两个方向入手核对 Hive 侧 DWRF 文件的加密组元数据以及 Presto 侧为文件提供的密钥映射是否完整一致。小结与升级建议问题影响面类型处置Function Namespace Manager 启用 未配置 Thrift 导致启动失败PR 15501启用 UDF 命名空间管理的集群已知缺陷warning升级前评估必要时先配好 Thrift UDF 服务再升级并关注后续版本修复声明读取加密 DWRF 表查询抛 NPE使用 DWRF 加密表的 Hive 查询已修复Hive Changes升级 0.242.1 后回归验证加密表查询整体来看0.242.1 是一个小型缺陷修复版本对绝大多数未使用 Function Namespace / DWRF 加密的部署而言升级风险很低而同时使用这两类能力的用户则应重点围绕Thrift 配置完整性与加密 DWRF 表查询回归两项开展验证。赞分享大数据数据库后端【免费下载链接】prestoThe official home of the Presto distributed SQL query engine for big data项目地址https://gitcode.com/gh_mirrors/pre/presto点击查看免费下载相关推荐Presto 0.243.1 发布说明Function Namespace 启动缺陷警告与 Hive 加密 DWRF 读取修复Presto 0.243.1 发布说明Function Namespace 启动缺陷警告与 Hive 加密 DWRF 读取修复 0.243.1 是 Prest大数据数据库后端Presto 0.244.1 版本解读Hive ORC Flat Map 空 Map 读取修复与 Function Namespace Manager 启动警告Presto 0.244.1 版本解读Hive ORC Flat Map 空 Map 读取修复与 Function Namespace Manager 启动警大数据数据库后端Presto 0.245.1 版本解读ORC 选择性读取器修复 VARCHAR 嵌套列读取与函数命名空间 Thrift 启动警告Presto 0.245.1 版本解读ORC 选择性读取器修复 VARCHAR 嵌套列读取与函数命名空间 Thrift 启动警告 本文以官方发布说明 rele大数据数据库后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/6 6:37:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/6 0:32:51

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/6 1:10:54

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/5 15:28:55

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/6 14:29:05

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/6 14:29:07

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉