大家好,我是create17,见字如面。
今天给大家分享一个Ambari知识点。因为有好几位小伙伴最近都问了这个问题,所以特地整理一篇文章来回复这个问题,希望我的分享能给大家带来一些帮助和启发。
Ambari修改了集成服务的metainfo.xml中的version值,也重启了ambari-server,但发现在Ambari页面的服务列表中的某服务版本号没有更新,是怎么回事呢?
Ambari在初始化hadoop集群的时候,会加载/var/lib/ambari-server/resources/stacks/HDP下的services/各服务/metainfo.xml文件,获取各服务名称及版本号列表。
等最后部署时,Ambari会将hdp各服务的版本信息、操作系统、Repository base url 保存到数据库中,分别是:repo_version、repo_os、repo_definition 表,还会在每个ambari-agent节点的/etc/yum.repos.d目录下生成ambari-hdp-xxx.repo文件,里面记载着页面输入的Repository base url地址。
当你后续修改已集成服务的metainfo.xml文件里面的version版本的时候,重启ambari-server,会发现服务列表中对应服务版本并没有变化。这里ambari-server不会再更新已存在服务的version了,需要你自己修改repo_version表的数据,然后重启ambari-server生效。修改具体如下图所示:
或者,你重新初始化hadoop集群(重新创建数据库,初始化sql),重启ambari-server,这时候ambari会重新加载一遍各服务的metainfo.xml,将信息保存到ambari数据库,这时候保存的就是你改动后的version了。
大家也可以看下这篇文章:《Ambari部署HDP时,Select Version时页面数据来源解析》,这篇是我22.11.14发表的,没想到竟然过去了两年,果真是时光如梭啊...