TT Bigdata TT Bigdata
首页
  • 部署专题

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

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

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

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

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

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

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

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

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

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

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

JaneTTR

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

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

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

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

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

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

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

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

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

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

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

    • 蓝图愿景
    • 技术支持
    • 合作共建
登陆
GitHub (opens new window)
  • 方法论

  • 组件编译技巧

  • 打包技巧-RPM

  • 实战-日志&源码解读全链路周期

  • 其他技巧

    • bigtop-select多系统编译改造
      • 1. 背景与版本差异
      • 2. 兼容性痛点分析
        • 常见三类问题
      • 3. 通用方案对比
        • 方案一:强行全局软链
        • 方案二:shebang 统一为 /usr/bin/env python
        • 方案三:【推荐】用 ambari-python-wrap
    • 如何查看Rpm包执行钩子
  • GOD-Bigtop
  • 其他技巧
JaneTTR
2025-07-03
目录

bigtop-select多系统编译改造

# 1. 背景与版本差异

在大数据平台 rpm/脚本分发环境下,经常遇到“同一个工具、不同 Python 版本 shebang”的问题,尤其体现在 bigtop-select 这种集成脚本上。

  • Bigtop 3.2 及旧版本,distro-select 默认 shebang 为:

    #!/usr/bin/env python2
    
    1

    3.2-shebang

  • Bigtop 3.4 及更新版已切换到:

    #!/usr/bin/env python3
    
    1

    3.4-shebang

提示

CentOS 7/8、RHEL 7/8、Rocky、Ubuntu 等主流环境,默认 Python 版本高度不一致,系统升级后“脚本一堆 py2/py3 错误”屡见不鲜。

# 2. 兼容性痛点分析

# 常见三类问题

问题场景 具体表现 典型环境
python2/3 不同 shebang 脚本执行直接报错 混部、升级、迁移集群
全局软链切换引发二次崩溃 系统依赖被新软链破坏 多套业务同服
ambari/bigtop 共存多脚本 运维脚本难以一致调度 大集群、混合管理平台

# 3. 通用方案对比

# 方案一:强行全局软链

ln -sf /usr/bin/python3 /usr/bin/python
1
  • 能临时解决部分脚本兼容
  • **缺点:**易影响系统依赖,带来隐藏风险,不推荐

# 方案二:shebang 统一为 /usr/bin/env python

  • 理论可行,但受全局软链影响大,升级后极易出坑

# 方案三:【推荐】用 ambari-python-wrap

#!/usr/bin/env ambari-python-wrap
1
  • 只要有 Ambari 的机器必有该工具
  • 内部自动判断 py2/py3,跨版本无感知
  • 避免全局软链,不影响系统本地依赖
  • 集群脚本一行修改,全局解决

ambari-python-wrap调用

提示

ambari-python-wrap 属于业界工程实践最佳方案,大数据场景推荐优先采用。

#Ambari#Redis#Stack集成#大数据运维
Step12-spec执行钩子解读[二]
如何查看Rpm包执行钩子

← Step12-spec执行钩子解读[二] 如何查看Rpm包执行钩子→

最近更新
01
bigtop-select 打包缺 compat 报错修复 deb
07-16
02
bigtop-select 打包缺 control 文件报错修复 deb
07-16
03
首次编译-环境初始化 必装
07-16
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式