Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • Ambari自定义服务开发-项目初始化
  • Ambari自定义服务开发-组件安装启动停止卸载介绍
  • Ambari自定义服务开发-自定义服务配置文件在Ambari中的设置方法
  • Ambari自定义服务开发-自定义服务配置文件生成
  • Ambari自定义服务开发-代码如何获取配置参数
  • Ambari自定义服务开发-修改配置文件提示服务重启
  • Ambari自定义服务开发-自定义告警
  • Ambari自定义服务开发-查看历史版本配置
  • Ambari自定义服务开发-调试方法
  • Ambari自定义服务开发-执行Shell命令
  • Ambari自定义服务开发-快捷访问链接生成
  • Ambari自定义服务开发-服务组件启动顺序设置
  • Ambari自定义服务开发-服务组件安装依赖另外一个组件设置
  • Ambari自定义服务开发-监控指标Metrics介绍
  • Ambari自定义服务开发-使用客户端下载配置文件
  • Ambari自定义服务开发-美化(增强型)配置参数设置
  • Ambari自定义服务开发-自定义开发安装包整合到Ambari-Server中
  • Ambari自定义服务开发-自定义脚本运行
    • 服务检查脚本
    • 自定义脚本
      • 前提条件
      • 添加配置
    • 相关演示代码
  • Ambari自定义服务开发-常用函数
  • Ambari自定义服务开发问题处理-中文乱码
  • Ambari自定义服务开发问题处理-告警项UNKWN
  • Ambari自定义服务开发问题处理-Agent安装服务报错unknown
  • Ambari自定义服务开发问题处理-修改源码配置,服务重启后未生效
  • 《Ambari自定义开发教程》笔记
Jast-zsh
2024-04-08
目录

Ambari自定义服务开发-自定义脚本运行

[toc]

在Ambari WebUI中我们在ACTIONS中可以运行一下检查的脚本,

这里我们介绍两种脚本:

1.服务检查脚本(安装服务后也会自动运行一次)

2.自定义脚本

image-20240305170044532

# 服务检查脚本

在metainfo.xml的<service>标签下添加

      <commandScript>
                <script>scripts/service_check.py</script>
                <scriptType>PYTHON</scriptType>
                <timeout>1800</timeout>
      </commandScript>
1
2
3
4
5

说明:这个配置会读取scripts目录下的service_check.py文件,并执行文件下的def service_check(self, env):方法

创建service_check.py文件

tip:

  1. 检查服务运行的方法必须为service_check

  2. 这里只做演示在检查方法中没有添加实际代码

from resource_management import *
from time import sleep
from resource_management.core.logger import Logger


class service_check(Script):
  
    def service_check(self, env):
        import params
        env.set_params(params)
        Logger.info("run service_check")
        sleep(2)
        Logger.info("check successfully!")



if __name__ == "__main__":
    service_check().execute(
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

更新文件同步到服务器后,重启ambari-server服务,无需重新安装服务就可以在页面看到需要运行的内容

image-20240305170846166

在首次安装服务的时候也会自动执行一次该方法

image-20240305171254315

点击去可以看到日志,就是我们service_check方法中打印的内容

image-20240305171346145

# 自定义脚本

在页面中可以看到很多自定义脚本,可以根据我们需要去手动执行,比如:修复元数据、检查状态等等

image-20240305171604091

# 前提条件

在component的category类型为MASTER时可以添加自定义脚本,为SLAVE时添加脚本在页面中也不会显示

# 添加配置

在metainfo.xml的component下添加customCommands

					<commandScript>
            <script>scripts/master.py</script>
            <scriptType>PYTHON</scriptType>
            <timeout>1200</timeout>
          </commandScript>
          <customCommands>
              <customCommand>
                  <name>test_master_check</name>
                  <background>true</background>
                  <commandScript>
                      <script>scripts/master.py</script>
                      <scriptType>PYTHON</scriptType>
                  </commandScript>
              </customCommand>
            <customCommand>
                  <name>test_master_check2</name>
                  <background>true</background>
                  <commandScript>
                      <script>scripts/master.py</script>
                      <scriptType>PYTHON</scriptType>
                  </commandScript>
              </customCommand>
               <customCommand>
                  <name>test_master_check3</name>
                  <background>true</background>
                  <commandScript>
                      <script>scripts/master.py</script>
                      <scriptType>PYTHON</scriptType>
                  </commandScript>
              </customCommand>
              <customCommand>
                  <name>test</name>
                  <background>true</background>
                  <commandScript>
                      <script>scripts/test.py</script>
                      <scriptType>PYTHON</scriptType>
                  </commandScript>
              </customCommand>
          </customCommands>
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

tip:

customCommands里的script指定的脚本必须和component.commandScript.script相同。如果不相同执行则会报错

image-20240305172245265

在master.py中添加指定方法

这里添加的方法名与metainfo.xml配置的名称要相同

...
class Master(Script):

    def test_master_check(self, env):
        import params
        env.set_params(params)
        Logger.info("run test_master")
        sleep(2)
        Logger.info("check successfully!")

    def test_master_check2(self, env):
        import params
        env.set_params(params)
        Logger.info("run test_master")
        sleep(2)
        Logger.info("check successfully!")

    def test_master_check3(self, env):
        import params
        env.set_params(params)
        Logger.info("run test_master")
        sleep(2)
        Logger.info("check successfully!")

...
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

更新文件同步到服务器后,重启ambari-server服务,无需重新安装服务就可以在页面看到需要运行的内容

image-20240305172517078

运行后可以看到执行的日志

image-20240305172536873

# 相关演示代码

https://download.csdn.net/download/zhangshenghang/88913129 (opens new window)

上次更新: 2024/04/08, 10:55:49
Ambari自定义服务开发-自定义开发安装包整合到Ambari-Server中
Ambari自定义服务开发-常用函数

← Ambari自定义服务开发-自定义开发安装包整合到Ambari-Server中 Ambari自定义服务开发-常用函数→

最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式