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)
  • Bigtop通用部分

  • Bigtop打包部分

  • Ambari部分

    • Step10-Stacks-包结构
      • 1. 目录结构总览
      • 2. 核心目录分层说明
      • 3. 典型业务场景举例
    • Step11-Stacks-组件编排
    • Step12-Stacks-配置文件
    • Step13-Stacks-模板文件
    • Step14-Scripts-环境变量
    • Step15-Scripts-执行逻辑
    • Step16-Scripts-服务检查
    • Step17-Scripts-组件优先级
    • Step18-衔接-打通Ambari与Bigtop
  • J-Redis集成-F
  • Ambari部分
JaneTTR
2025-06-24
目录

Step10-Stacks-包结构

在 Ambari 生态体系下,Stacks 目录定义了所有可集成服务的核心包结构。 每一个组件服务都必须遵循这一套严谨的目录规范和分层设计,以保证可视化运维、服务扩展、脚本自动化等能力的顺利落地。

本章节以 Redis 为例,详细解析 Stacks 组件包的全貌:

# 1. 目录结构总览

组件目录位于 ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/REDIS/ 结构如下:

image-20250626112154578

REDIS
├── configuration
│   ├── redis-env.xml
│   └── redis-site.xml
├── metainfo.xml
├── package
│   ├── scripts
│   │   ├── __init__.py
│   │   ├── params.py
│   │   ├── params_linux.py
│   │   ├── redis_client.py
│   │   ├── redis_master.py
│   │   ├── redis_slave.py
│   │   └── service_check.py
│   └── templates
│       ├── redis-env.sh.j2
│       └── redis.conf.j2
└── role_command_order.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 2. 核心目录分层说明

层级 主要内容 说明与典型用法
configuration/ 配置文件 可视化参数入口。所有 xml 文件均可自动呈现在 Ambari 的服务配置页面,用于存储环境变量、端口、持久化、主从等核心配置项。
├─ redis-env.xml 环境变量 定义服务启动相关的 shell 环境变量(如 REDIS_HOME、日志目录、端口等),支持动态参数下发。
└─ redis-site.xml 主配置参数 主要存储 Redis 的业务配置(如持久化策略、复制、保护模式、内存上限等),映射为 web 界面可配置项。
metainfo.xml 组件元信息 服务注册文件。声明该服务在 Ambari 下的身份、显示名、依赖关系、版本号、角色类型等,驱动整个安装和生命周期管理流程。
package/ 服务包核心 脚本、模板、自动化逻辑都在此处。
分为 scripts(Python服务控制脚本)与 templates(配置模板,支持 Jinja2 动态渲染)。
├─ scripts/ 服务操作脚本 所有服务角色(如 Master、Slave、Client)的安装、启动、停止、巡检、配置下发等全流程自动化逻辑,均以 Python 编写。
│  ├─ params.py 参数转化层 将 XML 配置转为 Python 字典对象,供脚本动态获取参数。
│  ├─ redis_master.py Master脚本 Master 节点的生命周期管理(如启动、停止、状态检测、配置重载)。
│  ├─ redis_slave.py Slave脚本 Slave 节点管理,兼容哨兵与主从复制场景。
│  ├─ redis_client.py 客户端脚本 客户端相关操作,主要支持命令行工具检测和连通性验证。
│  ├─ service_check.py 服务检测 健康检查,实现“快速自检+告警”闭环,安装/升级过程自动校验服务可用性。
└─ templates/ 配置模板 Jinja2 模板文件,通过参数动态渲染出最终的 redis.conf 和环境变量脚本,保证跨平台与环境的一致性和灵活性。
├─ redis-env.sh.j2 环境模板 生成 shell 环境变量脚本,适配不同集群部署环境。
└─ redis.conf.j2 主配置模板 渲染生成 Redis 的核心配置文件(redis.conf),支持参数继承和自定义。
role_command_order.json 服务顺序 服务启动/停止/升级等多角色依赖的执行顺序,确保分布式场景下“谁先启动、谁后下线”都完全可控。

# 3. 典型业务场景举例

集成场景一:参数下发与模板渲染

  • 通过 Ambari Web 配置页面修改 redis-site.xml 相关参数。
  • params.py 自动解析配置,将参数传入 redis.conf.j2,实时渲染生成最终配置文件。
  • 服务平滑重启,参数立即生效。

集成场景二:多角色自动化部署

  • Redis Master、Slave、Client 角色可根据拓扑一键下发到不同节点。
  • 各角色对应脚本负责生命周期管理,提升自动化水平。
  • 支持动态扩缩容与一键巡检,极大简化大数据集群运维难度。

集成场景三:多环境适配与升级

  • 通过 metainfo.xml 灵活声明依赖版本和兼容边界。
  • role_command_order.json 定义复杂服务编排,保障灰度升级、分批重启、主从切换的自动有序执行。
#Redis#bigtop#编译日志#自动化构建#版本注入
Step5-Redhat下构造spec
Step11-Stacks-组件编排

← Step5-Redhat下构造spec Step11-Stacks-组件编排→

最近更新
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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式