答案 0 :(得分:0)
我终于找到了原因。我使用REST api从现有集群中删除了一些节点。我按照医生的说法做了。首先停止节点上的所有组件,然后删除所有组件(不包括已安装的客户端),最后删除节点。然而,在做完所有这些事情之后,ambari数据库进入了一个不一致的状态。 hostcomponentstate
和hostcomponentdesiredstate
表包含在hosts
表中找不到的已删除主机条目。这导致在加入hosts
表和hostcomponentstate
时,我们获得了一个null HostEntity。
删除hostcomponentstate
和hostcomponentdesiredstate
表中的不一致数据后,每次都进展顺利。
所以我的观点是,如果节点上仍然安装了客户端,Ambari会禁用删除节点操作,还是Ambari会保证我描述的场景永远不会发生?