TT Bigdata TT Bigdata
首页
  • 部署专题

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

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

    • 更新说明
  • Ambari-Env

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

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

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

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

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

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

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

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)

JaneTTR

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

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

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

    • 更新说明
  • Ambari-Env

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

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

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

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

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

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

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

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)
  • 方法论

  • 代码生命周期-metainfo

    • 加载原理深度剖析[一]
    • 加载原理深度剖析[二]
    • 加载原理深度剖析[三]
    • 结构与层级深入解读
    • configFile详解[一]
    • configFile详解[二]
    • cardinality详解[一]
    • cardinality详解[二]
    • cardinality详解[三]
    • category详解[一]
    • category详解[二]
    • category详解[三]
    • theme详解[一]
    • theme详解[二]
    • theme详解[三]
    • commandScript详解[二]
    • commandScript详解[一]
      • Ambari Command Execution 全链路 21+ 步详解
        • 1. 执行流程总览(全图汇总)
        • 2. 日志与数据流分析示例
    • commandScript详解[三]
    • customCommand详解[一]
    • customCommand详解[二]
    • customCommand详解[三]
    • requiredServices详解[一]
    • requiredServices详解[二]
    • osSpecifics详解[一]
    • osSpecifics详解[二]
    • osSpecifics详解[三]
    • quicklinks详解[一]
    • quicklinks详解[二]
    • quicklinks详解[三]
    • quicklinks详解[四]
  • 架构剖析

  • UI样式

  • GOD-Ambari
  • 代码生命周期-metainfo
JaneTTR
2025-06-02
目录

commandScript详解[一]

# Ambari Command Execution 全链路 21+ 步详解

本节以“流程图 + 日志 + 数据结构”三位一体,串联 Ambari 命令派发从上层请求到 Agent 最终执行的全生命周期。* 每一张图都是一个流程节点,建议配合集群实际问题对照分析。*

# 1. 执行流程总览(全图汇总)

1/23 流程1

2/23 流程2

3/23 流程3

4/23 流程4

5/23 流程5

6/23 流程6

7/23 流程7

8/23 流程8

9/23 流程9

10/23 流程10

11/23 流程11

12/23 流程12

13/23 流程13

14/23 流程14

15/23 流程15

16/23 流程16

17/23 流程17

18/23 流程18

19/23 流程19

20/23 流程20

21/23 流程21

22/23 流程22

23/23 流程23

# 2. 日志与数据流分析示例

你前面补充的 CommandsEventListener.py 日志片段和格式化 JSON,就是这些流程中“实际落盘和调度”的数据模型,可结合每步流程定位下发脚本、命令参数、任务状态等细节。

提示

每张图建议配合当前运维场景分析,比如:

  • UI/API触发 → Server分派 → Agent调度 → 脚本调用 → 状态回传
  • 任务失败在哪一步、Agent超时重试是第几步等
CommandsEventListener.py:45 - ============Received message: {'clusters': {'2': {'commands': [{'commandParams': {'hooks_folder': 'stack-hooks', 'custom_command': 'RESTART', 'script': 'scripts/zookeeper_client.py', 'version': '3.2.0', 'command_timeout': '900', 'HAS_RESOURCE_FILTERS': 'true', 'script_type': 'PYTHON'}, 'roleCommand': 'CUSTOM_COMMAND', 'repositoryFile': {'resolved': True, 'repoVersion': '3.2.0', 'repositories': [{'mirrorsList': None, 'tags': [], 'ambariManaged': True, 'baseUrl': 'http://192.168.3.46/modules', 'repoName': 'bigtop', 'components': None, 'distribution': None, 'repoId': 'BIGTOP-3.2.0-repo-1', 'applicableServices': []}], 'feature': {'preInstalled': False, 'scoped': True}, 'stackName': 'BIGTOP', 'repoVersionId': 1, 'repoFileName': 'ambari-bigtop-1'}, 'clusterId': '2', 'commandType': 'EXECUTION_COMMAND', 'clusterName': 'dev', 'serviceName': 'ZOOKEEPER', 'role': 'ZOOKEEPER_CLIENT', 'requestId': 72, 'taskId': 314, 'roleParams': {'component_category': 'CLIENT'}, 'componentVersionMap': {'HDFS': {'NAMENODE': '3.2.0', 'SECONDARY_NAMENODE': '3.2.0', 'DATANODE': '3.2.0', 'JOURNALNODE': '3.2.0', 'HDFS_CLIENT': '3.2.0'}, 'ZOOKEEPER': {'ZOOKEEPER_SERVER': '3.2.0', 'ZOOKEEPER_CLIENT': '3.2.0'}}, 'commandId': '72-0'}, {'commandParams': {'hooks_folder': 'stack-hooks', 'custom_command': 'RESTART', 'script': 'scripts/zookeeper_server.py', 'version': '3.2.0', 'command_timeout': '1200', 'HAS_RESOURCE_FILTERS': 'true', 'script_type': 'PYTHON'}, 'roleCommand': 'CUSTOM_COMMAND', 'repositoryFile': {'resolved': True, 'repoVersion': '3.2.0', 'repositories': [{'mirrorsList': None, 'tags': [], 'ambariManaged': True, 'baseUrl': 'http://192.168.3.46/modules', 'repoName': 'bigtop', 'components': None, 'distribution': None, 'repoId': 'BIGTOP-3.2.0-repo-1', 'applicableServices': []}], 'feature': {'preInstalled': False, 'scoped': True}, 'stackName': 'BIGTOP', 'repoVersionId': 1, 'repoFileName': 'ambari-bigtop-1'}, 'clusterId': '2', 'commandType': 'EXECUTION_COMMAND', 'clusterName': 'dev', 'serviceName': 'ZOOKEEPER', 'role': 'ZOOKEEPER_SERVER', 'requestId': 72, 'taskId': 315, 'roleParams': {'component_category': 'MASTER'}, 'componentVersionMap': {'HDFS': {'NAMENODE': '3.2.0', 'SECONDARY_NAMENODE': '3.2.0', 'DATANODE': '3.2.0', 'JOURNALNODE': '3.2.0', 'HDFS_CLIENT': '3.2.0'}, 'ZOOKEEPER': {'ZOOKEEPER_SERVER': '3.2.0', 'ZOOKEEPER_CLIENT': '3.2.0'}}, 'commandId': '72-0'}]}}, 'requiredConfigTimestamp': 1725606947714}
1

格式化后的json

{
  'clusters': {
    '2': {
      'commands': [
        {
          'commandParams': {
            'hooks_folder': 'stack-hooks',
            'custom_command': 'RESTART',
            'script': 'scripts/zookeeper_client.py',
            'version': '3.2.0',
            'command_timeout': '900',
            'HAS_RESOURCE_FILTERS': 'true',
            'script_type': 'PYTHON'
          },
          'roleCommand': 'CUSTOM_COMMAND',
          //省略了部分
          'clusterId': '2',
          'commandType': 'EXECUTION_COMMAND',
          'clusterName': 'dev',
          'serviceName': 'ZOOKEEPER',
          'role': 'ZOOKEEPER_CLIENT',
          'requestId': 72,
          'taskId': 314,
          'roleParams': {
            'component_category': 'CLIENT'
          },
          'componentVersionMap': {
            'HDFS': {
              'NAMENODE': '3.2.0',
              'SECONDARY_NAMENODE': '3.2.0',
              'DATANODE': '3.2.0',
              'JOURNALNODE': '3.2.0',
              'HDFS_CLIENT': '3.2.0'
            },
            'ZOOKEEPER': {
              'ZOOKEEPER_SERVER': '3.2.0',
              'ZOOKEEPER_CLIENT': '3.2.0'
            }
          },
          'commandId': '72-0'
        },
        {
          'commandParams': {
            'hooks_folder': 'stack-hooks',
            'custom_command': 'RESTART',
            'script': 'scripts/zookeeper_server.py',
            'version': '3.2.0',
            'command_timeout': '1200',
            'HAS_RESOURCE_FILTERS': 'true',
            'script_type': 'PYTHON'
          },
          'roleCommand': 'CUSTOM_COMMAND',
          'repositoryFile': {
            'resolved': True,
            'repoVersion': '3.2.0',
            'repositories': [
              {
                'mirrorsList': None,
                'tags': [],
                'ambariManaged': True,
                'baseUrl': 'http://192.168.3.46/modules',
                'repoName': 'bigtop',
                'components': None,
                'distribution': None,
                'repoId': 'BIGTOP-3.2.0-repo-1',
                'applicableServices': []
              }
            ],
            'feature': {
              'preInstalled': False,
              'scoped': True
            },
            'stackName': 'BIGTOP',
            'repoVersionId': 1,
            'repoFileName': 'ambari-bigtop-1'
          },
          'clusterId': '2',
          'commandType': 'EXECUTION_COMMAND',
          'clusterName': 'dev',
          'serviceName': 'ZOOKEEPER',
          'role': 'ZOOKEEPER_SERVER',
          'requestId': 72,
          'taskId': 315,
          'roleParams': {
            'component_category': 'MASTER'
          },
          'componentVersionMap': {
            'HDFS': {
              'NAMENODE': '3.2.0',
              'SECONDARY_NAMENODE': '3.2.0',
              'DATANODE': '3.2.0',
              'JOURNALNODE': '3.2.0',
              'HDFS_CLIENT': '3.2.0'
            },
            'ZOOKEEPER': {
              'ZOOKEEPER_SERVER': '3.2.0',
              'ZOOKEEPER_CLIENT': '3.2.0'
            }
          },
          'commandId': '72-0'
        }
      ]
    }
  },
  'requiredConfigTimestamp': 1725606947714
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#Ambari#命令调度#Agent#运维自动化#流程解析
commandScript详解[二]
commandScript详解[三]

← commandScript详解[二] commandScript详解[三]→

最近更新
01
Pandoc 缺失导致 SparkR 构建失败
06-08
02
Cyrus SASL/GSASL 缺失解决
06-07
03
Hadoop_3.3.4 编译实战 1.0.0+
06-06
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式