TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装教程
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装教程
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)
  • Hadoop

    • /usr/bin/env: python3: No such file or directory 问题
    • error triple-beam@1.4.1: The engine "node" is incompatible with this module 错误
    • CMake 3.1 or higher is required. You are running version 2.8.12.2 错误
    • fuse is needed by hadoop_3_2_0-3.3.4-1.el7.x86_64 错误
    • Cyrus SASL/GSASL 缺失解决
    • Protobuf PROTOC LIBRARY NOTFOUND
      • 1. 背景与现象
      • 2. 根因定位
      • 3. 快速修复(Ubuntu 22.04 标准环境)
        • 3.1 一次性补齐依赖
        • 3.2 校验版本一致性
        • 3.3 清理并重编
    • EVP CIPHER CTX block size 报错
  • Spark

  • Trino

  • Hudi

  • Paimon

  • Livy

  • Flink

  • Atlas

  • Superset

  • Jsvc

  • Zookeeper

  • Hive

  • Sqoop

  • Cloudbeaver

  • Bigtop-select

  • 报错解决-Bigtop
  • Hadoop
JaneTTR
2025-08-15
目录

Protobuf PROTOC LIBRARY NOTFOUND

# 1. 背景与现象

Hadoop 3.3.4 在执行 native 组件构建时,hadoop-hdfs-native-client 模块 CMake 失败:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
Protobuf_PROTOC_LIBRARY
    linked by target "protoc-gen-hrpc" in directory .../hadoop-hdfs-native-client/src/main/native/libhdfspp/lib/proto
...
-- Performing Test PROTOC_IS_COMPATIBLE - Failed
[ERROR] ... hadoop-hdfs-native-client: CMake failed with error code 1
1
2
3
4
5
6
7

伴随环境探测信息(节选):

  • Ubuntu 22.04 / GCC 11.4
  • OpenSSL 3.0.2 已找到
  • Protobuf 库版本 3.12.4
  • 找到 libsasl2.so、libgsasl.so
  • 但缺 Protobuf_PROTOC_LIBRARY,并出现 PROTOC_IS_COMPATIBLE 失败

关键信号

Protobuf_PROTOC_LIBRARY 对应 libprotoc(protocol compiler library),不是可执行文件 protoc 。仅装了 protobuf-compiler 或 libprotobuf-dev,但 缺少 libprotoc-dev,就会触发该 NOTFOUND。

# 2. 根因定位

  • 缺少 libprotoc 开发库 CMake 的 FindProtobuf.cmake 会同时寻找:

    • protoc 可执行文件(protobuf-compiler)
    • libprotobuf(libprotobuf-dev)
    • libprotoc(libprotoc-dev)← 你缺这个
  • protoc 与库版本不兼容 PROTOC_IS_COMPATIBLE - Failed 一般是 protoc 版本 与 libprotobuf/libprotoc 版本不一致(例如 protoc 来自 /usr/local 的 3.21+,而系统库是 3.12.4)。

  • 历史手工安装残留 /usr/local/include、/usr/local/lib 中遗留的旧版 Protobuf 头文件/库优先级更高,导致 CMake/ld 链接到错误版本。

# 3. 快速修复(Ubuntu 22.04 标准环境)

# 3.1 一次性补齐依赖

sudo apt-get update
sudo apt-get install -y \
  protobuf-compiler \
  libprotobuf-dev \
  libprotoc-dev \
  pkg-config
1
2
3
4
5
6

# 3.2 校验版本一致性

protoc --version            # 例如 libprotoc 3.12.4
pkg-config --modversion protobuf   # 3.12.4(与上面一致为佳)
ldconfig -p | grep -E 'libprotoc|libprotobuf'
1
2
3

若看到 /usr/local 下的更高/更低版本

说明系统存在手工安装残留。建议清理 /usr/local/include/google/protobuf 与 /usr/local/lib/libproto*,或在构建时显式指定 CMAKE_PREFIX_PATH 到 /usr,避免优先命中 /usr/local。

# 3.3 清理并重编

Bigtop/Hadoop 源内的 native 目标需清理缓存后再构建:

# 回到 Hadoop 源码根目录(或 Bigtop 输出的 Hadoop 源目录)
mvn \
  -Dsnappy.prefix=x \
  -Dbundle.snappy=true \
  -Dsnappy.lib=/usr/lib/x86_64-linux-gnu \
  -Pdist -Pnative -Psrc -Pyarn-ui -Dtar \
  -Dzookeeper.version=3.5.9 \
  -Dleveldbjni.group=org.fusesource.leveldbjni \
  -DskipTests -DskipITs \
  -Drequire.openssl=true \
  -Drequire.isal=true \
  -Drequire.pmdk=true \
  -DProtobuf_PROTOC_EXECUTABLE=/usr/bin/protoc \
  -DProtobuf_LIBRARY=/usr/lib/x86_64-linux-gnu/libprotobuf.so \
  -DProtobuf_LITE_LIBRARY=/usr/lib/x86_64-linux-gnu/libprotobuf-lite.so \
  -DProtobuf_PROTOC_LIBRARY=/usr/lib/x86_64-linux-gnu/libprotoc.so \
  -Drequire.zstd=true \
  install \
  -Divy.home=/root/.ivy2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#Hadoop#HDFS Native#Protobuf#CMake#编译问题#Ubuntu22.04
Cyrus SASL/GSASL 缺失解决
EVP CIPHER CTX block size 报错

← Cyrus SASL/GSASL 缺失解决 EVP CIPHER CTX block size 报错→

最近更新
01
[/metrics/aggregated] — 聚合数据范围 检查点
09-19
02
[/metrics] — 反向分析接口参数 请求抓包
09-17
03
[/metrics] — 普通指标写入方法 POST
09-17
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式