TT Bigdata TT Bigdata
首页
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • 报错解决

    • Ambari 报错
    • Bigtop 报错
      • Hadoop

      • Spark

      • Trino

        • Trino requires Temurin or Oracle JDK for development
        • GLIBC 与 GLIBCXX 版本过低
          • 一、问题背景:Node 构建 Trino Web UI 失败
          • 二、环境验证与规避方案尝试
          • 三、解决方案汇总
          • 四、方案一:手动编译 glibc + gcc
          • 五、方案二:使用非官方兼容 Node 版本(推荐)
            • 下载地址
      • Hudi

      • Paimon

      • Livy

      • Flink

      • Atlas

      • Superset

      • Jsvc

      • Zookeeper

      • Hive

      • Sqoop

      • Cloudbeaver

      • Bigtop-select

      • Knox

      • Hue

  • 系统适配

  • 监控与调优

  • BUG临时处理
  • 实验室

  • 运维资料
  • 报错解决
  • Bigtop 报错
  • Trino
JaneTTR
2022-12-18
目录
一、问题背景:Node 构建 Trino Web UI 失败
二、环境验证与规避方案尝试
三、解决方案汇总
四、方案一:手动编译 glibc + gcc
五、方案二:使用非官方兼容 Node 版本(推荐)
下载地址

GLIBC 与 GLIBCXX 版本过低

# 一、问题背景:Node 构建 Trino Web UI 失败

在 CentOS 7.9 上构建 Trino 时,前端模块依赖 Node.js 环境进行打包操作(webpack、babel、flow等),执行 npm run package 报如下错误:

drwxrwxr-x 1 root root 4096 Mar 22 03:10 .
drwxrwxr-x 1 root root 4096 Mar 22 03:10 ..
drwxrwxr-x 1 root root 4096 Mar 22 03:10 assets
-rw-rw-r-- 1 root root 1659 Mar 22 03:10 disabled.html
-rw-rw-r-- 1 root root 1272 Mar 22 03:10 embedded_plan.html
-rw-rw-r-- 1 root root 1629 Mar 22 03:10 index.html
-rw-rw-r-- 1 root root 2537 Mar 22 03:10 login.html
-rw-rw-r-- 1 root root 1442 Mar 22 03:10 plan.html
-rw-rw-r-- 1 root root 1428 Mar 22 03:10 query.html
-rw-rw-r-- 1 root root 1331 Mar 22 03:10 references.html
drwxrwxr-x 1 root root 4096 Mar 22 03:10 src
-rw-rw-r-- 1 root root 1834 Mar 22 03:10 stage.html
-rw-rw-r-- 1 root root 2098 Mar 22 03:10 timeline.html
drwxrwxr-x 1 root root 4096 Mar 22 03:10 vendor
-rw-rw-r-- 1 root root 1425 Mar 22 03:10 worker.html
-rw-rw-r-- 1 root root 1429 Mar 22 03:10 workers.html
(maven_env) [root@centos1 webapp]# npm run package
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
(maven_env) [root@centos1 webapp]# clear
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

报错解析

这是因为系统原生的 glibc 和 libstdc++ 版本过低,无法满足新版 Node.js 所需的依赖链要求(尤其是 v18+ 以后)。

通过查看 node 所依赖的符号版本,可以清楚地看到其对 GLIBCXX 和 CXXABI 的高版本依赖。

# 二、环境验证与规避方案尝试

项目目录结构如下(webapp 为 Trino Web 前端):

image-20250416224812781

运行后,触发如上错误。

我也尝试了替代方案:自行编译 glibc 2.36 与 gcc 10.3.0,并使用 ld-linux-x86-64.so.2 手动指定运行时动态链接器与库路径:

/opt/enhance_env/envs/lib/ld-linux-x86-64.so.2 \
  --library-path /opt/enhance_env/envs/lib:/opt/enhance_env/envs/lib64 \
  /root/.nvm/versions/node/v22.14.0/bin/node \
  /root/.nvm/versions/node/v22.14.0/bin/npm -v
1
2
3
4

执行后可以正常工作:

执行截图

笔记

这种方式不修改系统默认环境,而是通过设置 LD 运行环境变量实现“影子运行环境”,对主系统最小侵入。

# 三、解决方案汇总

方案 描述 推荐程度
方案一 手动编译 glibc + gcc 到非系统路径,通过 ld-linux 指定 通用但繁琐
方案二 直接使用非官方 Node.js 预编译版本(内置高版本 glibc) 快捷推荐

# 四、方案一:手动编译 glibc + gcc

编译说明

你可以通过源码编译出较新版本的 glibc 和 gcc,并将其安装在如 /opt/enhance_env/ 路径下。

最终运行时使用方式如前:

/opt/enhance_env/envs/lib/ld-linux-x86-64.so.2 \
  --library-path /opt/enhance_env/envs/lib:/opt/enhance_env/envs/lib64 \
  node -v
1
2
3

注意

注意:使用这种方式需在每次执行 node/npm 命令时均指定动态库路径,或者封装 wrapper 脚本。

# 五、方案二:使用非官方兼容 Node 版本(推荐)

社区已有专门为旧系统构建的兼容版本 Node.js,包含了预编译的 glibc >= 2.27 支持,非常适合在 CentOS 7.x 下使用。

提示

GitHub 地址:
https://github.com/JaneTTR-Bigdata/unofficial-builds?tab=readme-ov-file

image-20250416223428233

# 下载地址

来自 Node 官方镜像的兼容构建版本:

https://unofficial-builds.nodejs.org/download/release/

示意图如下:

版本下载页

下载后,将文件名修改为标准命名:

mv node-v22.14.0-linux-x64-glibc-217.tar.gz node-22.14.0-linux-x64.tar.gz
1

并解压:

tar -xzf node-22.14.0-linux-x64.tar.gz -C /opt/modules
1

笔记

部分目录名可能仍然保留 glibc-217 后缀,可用软链标准化命名。

#Trino#Bigtop#错误排查#Node.js
Trino requires Temurin or Oracle JDK for development
javax.annotation.Nullable 缺失

← Trino requires Temurin or Oracle JDK for development javax.annotation.Nullable 缺失→

最近更新
01
当前版本 2026/08
08-29
02
把 Ambari Server HA 稳稳地跑起来
08-17
03
从一次启用操作追到主备就绪
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式