ambari二次开发分享(五)
2024-06-26 15:50:10 # Ambari # 二次开发

ambari二次开发分享(五)

目录

主要功能点

  • metainfo.xml
  • configuration/xxx.xml
  • package
  • alerts.json
  • quicklinks/quicklinks.json
  • widgets.json 与 metrics.json
  • themes/theme.json
  • rolecommandorder.json

基本修改需要修改上述文件,在前面的内容已经介绍过

常规调试步骤

  1. 重启ambari-server服务
  2. 重装服务

具体文件调试

metainfo.xml

替换文件到 ambari-server 所在节点的 /var/lib/ambari-server/resources/stacks/HDP/3.1/services/ELASTICSEARCH 目录下,重启 ambari-server 后生效,无需重装所属服务。

configuration/xxx.xml

1)重启 ambari-server 服务进程。

2)需要先卸载该服务

3)再安装该服务,这时的 configuration/xxx.xml 文件才会生效。

4)如果新增 xx.xml 文件后,重启 ambari-server 后,还需要卸载重装 ELASTICSEARCH 服务

5)如果是修改 xml 文件中的已有属性<name>,重启 ambari-server 后,被修改的属性就消失了,因为之前的属性被修改了,

package

1)在 ambari-server 重启的过程中,它会将 common-services 和 stacks/HDP 等相关的服务部署脚本分发到 ambari-agent 节点的 /var/lib/ambari-agent/cache 目录下。

不过 stacks/HDP/\<version>/services/ 目录下的服务,只会将 package 目录下的文件分发下来。

2)然后等安装部署服务的时候,每个 ambari-agent 节点都分配了一些安装组件嘛,这时候执行的部署脚本就是用的各自节点 /var/lib/ambari-agent/cache 目录下的脚本。比如 ELASTICSEARCH ,就是执行的 /var/lib/ambari-agent/cache/stacks/HDP/3.1/services/ELASTICSEARCH 里面的文件。

3)知道了这种安装部署机制以后,比如你修改了 ELASTICSEARCH/package 下面的文件,你可以直接将文件替换到 /var/lib/ambari-agent/cache/stacks/HDP/3.1/services/ELASTICSEARCH/package 目录下,它是实时生效的,不用重启 ambari-server 和重装服务。

注意点:

需要确认 package 下面的文件是哪个服务组件触发的。如果是 ELASTICSEARCHSERVICE 这个组件用到文件,那么替换到这个组件所在节点的 /var/lib/ambari-agent/cache/stacks/HDP/3.1/services/ELASTICSEARCH 目录下。然后就可以重启 ELASTICSEARCHSERVICE 服务组件,来看效果了。这样更节省时间。

alerts.json

1)如果是修改 alerts.json 文件内容,将其替换到ambari-server所在节点的 /var/lib/ambari-server/resources/stacks/HDP/3.1/services/ELASTICSEARCH 下。则需要重启 Ambari Server ,之后,并卸载、重新安装服务,Ambari 会将新预定义的 Alert 信息保存到数据库中。

2)如果是修改 SCRIPT 类型的 py 文件,则只需要将修改后的 py 文件放置到 告警组件所在机器的 /var/lib/ambari-agent/cache/stacks/HDP/3.1/services/ELASTICSEARCH/package/alerts 目录下即可(以 Elasticsearch 为例)。实时更新,不需要重启 ambari-server ,大概等待一分钟后,程序刷新。

将 quicklinks.json 文件替换到 ambari-server 节点的 /var/lib/ambari-server/resources/stacks/HDP/3.1/services/ELASTICSEARCH/quicklinks 目录下,重启ambari-server即可生效,无需重装服务。

widgets.json 与 metrics.json

有 widget 表会记录集群中的 widget 小部件信息,而且会随着你服务重装,这里面的信息也会越来越多。进而导致 ambari 页面上的

widget browser 里面有重复的 widget 。默认新的 widget 需要自己手动点击ADD按钮添加。

首次 widgets.json 和 metrics.json 文件上传到服务器后,仅需重启 ambari-server 即可生效。后续的 widgets.json 和 metrics.json 文件如果要修改的话,均需要重启 ambari-server 和 重装服务 才可生效。

但是,生效以后,需要在 “widget Browser” 里面手动添加最新的 widget 部件。默认,ambari 会一直展示旧的数据。这些 widget 部件信息存储在 widget 这个表中。所以需要在 “widget Browser” 里面手动添加最新的 widget 部件。

themes/theme.json

1)在 ambari-server 所在主机上的自定义服务目录中替换 theme json 文件(主题文件类型是 json,需要在 metainfo.xml 中指定主题文件名称。)

2)重启 ambari-server 服务进程。

3)在 ambari 页面上,即可查看更新后的自定义服务配置样式。

如果没有出现预期的效果,建议多看一下 主题 json 文件内容,多和 已有的主题文件作对比(比如,HBase 的 theme.json 文件)。

rolecommandorder.json

1)替换 rolecommandorder.json 文件

2)删除该服务与依赖的服务,比如本视频示例的 ELASTICSEARCH 与 ZOOKEEPER 服务。

3)重启 ambari-server 服务进程。

4)安装服务(ELASTICSEARCH 与 ZOOKEEPER ),进行验证。