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

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • Ambari 深度专题

  • Bigtop 方法论

    • Bigtop 深度专题
    • 方法论

    • 组件编译技巧

    • 打包技巧-DEB

    • 打包技巧-RPM

    • 实战-日志与源码解读

    • 其他技巧

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

  • Ambari Server 与 Web

  • Ambari Metrics

  • Ambari Plus 思考

  • Redis集成实战

  • 通用代码模板

  • 各组件代码

  • 技术专题
  • Bigtop 方法论
  • 其他技巧
JaneTTR
2025-07-03
目录
1. 背景与版本差异
2. 兼容性痛点分析
常见三类问题
3. 通用方案对比
方案一:强行全局软链
方案二:shebang 统一为 /usr/bin/env python
方案三:【推荐】用 ambari-python-wrap

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 属于业界工程实践最佳方案,大数据场景推荐优先采用。

#Bigtop-select#Bigtop#源码解析#Ambari#Redis#Stack集成
Step12-spec执行钩子解读[二]
如何查看Rpm包执行钩子

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

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