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

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • 开发环境

  • Ambari 编译

  • Bigtop 编译

  • Ambari 源码编译

  • 前端开发

  • 后端开发

  • 官方组件编译

  • 扩展组件编译

    • Sqoop编译

    • Ranger编译

    • Phoenix编译

    • Dolphinscheduler编译

    • Doris编译

      • version-2.1.7

        • Doris_2.1.7 编译
        • [O] Doris 版本适配改造(一)
        • [O] Doris 版本适配改造(二)
          • 1. 背景与目标
          • 2. 关键 diff 与实现
          • 3. 为什么要禁用自动拉包?
          • 4. 推荐第三方依赖管理方案
            • 常见 thirdparty 目录结构示例
          • 5. 编译流程变化与使用说明
          • 6. 固定依赖包资源说明
          • 7. 完整 diff 见下方:
        • [B] Doris 版本适配改造(一)
        • [B] Doris 版本适配改造(二)
        • [B] Doris 版本适配改造(三)
    • Cloudbeaver编译

    • Atlas编译

    • Superset编译

    • Celeborn编译

    • Ozone编译

    • Impala编译

    • Trino编译

    • Paimon编译

    • Hudi编译

  • 源码编译
  • 扩展组件编译
  • Doris编译
  • version-2.1.7
JaneTTR
2025-05-07
目录
1. 背景与目标
2. 关键 diff 与实现
3. 为什么要禁用自动拉包?
4. 推荐第三方依赖管理方案
常见 thirdparty 目录结构示例
5. 编译流程变化与使用说明
6. 固定依赖包资源说明
7. 完整 diff 见下方:

[O] Doris 版本适配改造(二)

# 1. 背景与目标

在 Doris 官方的 build.sh 构建流程中,默认会通过 update_submodule 自动从 github 拉取 apache-orc、clucene 等第三方子包。看似省事,但实际有如下致命隐患:

警告

第三方子包的 HEAD 或分支内容经常变更,随时间推移,同一份构建脚本每次拉取到的内容可能都不同,最终导致编译结果不可重现!

# 2. 关键 diff 与实现

本次 patch 的主要变更点非常直接:

-    update_submodule "be/src/apache-orc" "apache-orc" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/orc.tar.gz"
-    update_submodule "be/src/clucene" "clucene" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/clucene.tar.gz"
+#    update_submodule "be/src/apache-orc" "apache-orc" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/orc.tar.gz"
+#    update_submodule "be/src/clucene" "clucene" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/clucene.tar.gz"
1
2
3
4

即,直接注释掉了 update_submodule 相关自动下载逻辑,彻底杜绝第三方包内容漂移带来的风险。 但带来编译一致性的大幅提升。

# 3. 为什么要禁用自动拉包?

问题现象 原因分析 风险等级
子包内容变化,导致二次编译出包内容不同 github 分支或 tag 可随时被重写 高
某些第三方包被删除,导致编译中断 官方并未保障老分支包的永久可用性 高
CI/CD 自动化跑不通/环境不稳定 网络或镜像加速依赖仍有不确定性 中

注意

自动拉包机制在开源环境下从来不是可重现构建的保障方案。生产环境务必手动下载、固化依赖内容!

# 4. 推荐第三方依赖管理方案

建议采用手动或平台固化的方式管理 thirdparty 依赖包,具体做法如下:

  1. 统一下载所有 thirdparty 包,版本内容由研发或运维团队自控;
  2. 放置到本地/私有对象存储/Nexus/YUM 仓库等目录,并对外暴露只读链接;
  3. 所有构建脚本统一指向该固化目录,不再依赖网络和外部源内容漂移;
  4. 如需升级第三方包,严格通过审批/变更,保障每一次构建可溯源。

# 常见 thirdparty 目录结构示例

thirdparty/
  ├── apache-orc-xxx.tar.gz
  ├── clucene-xxx.tar.gz
  ├── ...
1
2
3
4

若需本地一键初始化 thirdparty 目录,可结合自定义 shell 脚本实现,详见本站其他组件离线包方案。

image-20250622113326251

# 5. 编译流程变化与使用说明

禁用自动拉包后,首次构建时如遇包缺失,需手动提前下载好对应 tar.gz 放入目标目录,否则会提示找不到依赖。

提示

这样虽然首次维护成本略有提升,但每一次的 Doris 编译结果都可以做到完全可控、可重现!强一致性

# 6. 固定依赖包资源说明

目前,Doris 编译所需的 所有 thirdparty 依赖包我们已全部提前下载并在本地固化管理,确保每次构建环境完全一致。

笔记

如需获取同款可用的 thirdparty 固定依赖包,或希望复现文中构建环境,欢迎联系作者。环境包分享 我们可根据需求协助提供内部归档包或自助初始化脚本,助你一键还原生产环境。

作者联系方式见首页

# 7. 完整 diff 见下方:

Subject: [PATCH] optimized: 不使用 doris 的 下载子包,因为子包会变
---
Index: build.sh
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/build.sh b/build.sh
--- a/build.sh	(revision 37f5d3ec9fb2933345c4411d9a581c84062f3de6)
+++ b/build.sh	(date 1736594835875)
@@ -501,8 +501,8 @@

 # Clean and build Backend
 if [[ "${BUILD_BE}" -eq 1 ]]; then
-    update_submodule "be/src/apache-orc" "apache-orc" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/orc.tar.gz"
-    update_submodule "be/src/clucene" "clucene" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/clucene.tar.gz"
+#    update_submodule "be/src/apache-orc" "apache-orc" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/orc.tar.gz"
+#    update_submodule "be/src/clucene" "clucene" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/clucene.tar.gz"
     if [[ -e "${DORIS_HOME}/gensrc/build/gen_cpp/version.h" ]]; then
         rm -f "${DORIS_HOME}/gensrc/build/gen_cpp/version.h"
     fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#Doris#Bigtop#源码编译
[O] Doris 版本适配改造(一)
[B] Doris 版本适配改造(一)

← [O] Doris 版本适配改造(一) [B] Doris 版本适配改造(一)→

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