ambari自定义服务干货
声明:博主写了一些Ambari自定义服务系列文章,可以在历史文章中查看。
仔细看,肯定会对ambari的自定义服务有一个更清晰的认识。
版本:ambari 2.6.1
一、实时更改服务配置
1 | # 以hue的配置文件hue.ini为例 |
变量以{{}}括起来,变量定义在param.py
文件。
1 | # param.py局部 |
hue-env.xml文件
目录:configuration/hue-env.xml
这样的话,当在ambari界面上的hue服务那修改配置,后台根据config命令来读取前端修改的值,然后赋值于hue.ini.j2
,hue.ini.j2
又与hue.ini
相关联。这样,hue的配置文件就会被实时更改,然后在ambari界面上根据提示重启hue服务,配置即可生效。
二、py脚本内创建/删除文件夹、文件
2.1 创建文件夹、文件
1 | def start(self, env): |
2.2 删除文件夹/文件
1 | def stop(self, env): |
2.3 设置密码校验
1 | <property require-input="true"> |
效果图:
三、依赖包说明
自定义服务python脚本依赖的模块是resource_management
,该模块的位置在/usr/lib/ambari-agent/lib/resource_management
,ambari的自定义服务程序环境就是依赖的这个目录。
四、调试代码逻辑,如何打印日志
1 | from resource_management.core.logger import Logger |
五、如何获取集群内的一些参数值
1. 获取ambari-server所在的主机,即主节点
1 | from resource_management.libraries.script.script import Script |
2. 获取集群名称
1 | cluster_name = str(config['clusterName']) |
3. 获取当前主机名称
1 | hostname = config['hostname'] |
4. 获取已安装服务组件所在主机
1 | clusterHostInfo = config['clusterHostInfo'] |
5. 获取ambari系统内其它已安装服务的xml属性值
1 | configurations = config['configurations'] |
6. 获取当前安装hdp的版本
1 | hdp_version = default("/commandParams/version", None) |
7. 一些特殊约定
1 | tmp_dir = Script.get_tmp_dir() |
六、config补充
1 | config = Script.get_config() |
如果需要看agentConfigParams
里面有什么key
值,可以参考标题四使用Logger.info
打印,比如:
1 | 如果是数组的话,就以“,”分隔 |
七、推荐资料
【1】Ambari自定义服务集成实战教学(完结):https://www.yuque.com/create17/ambari/miyk6c
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2018/09/27/Ambari/自定义服务/ambari自定义服务干货.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)