原创文章,转载请注明出处:http://qq85609655.iteye.com/blog/2201072
今天遇到这么个情况:
某个节点无法启动了,数据备份出来后,需要,重新安装hadoop的组件,但是,又不想改变原有的配置,百度,Google,没有找到办法,于是研究了下ambari的源码。解决的办法也不是没有。
有个表叫hostcomponentstate用于控制组件的状态,既然已经安装了,但是,节点上需要重新安装,将其认为安装失败,就可以重新进行安装,这样,再安装完之后,数据重新拷贝就OK了。
步骤如下:
1. 首先更改状态
UPDATE hostcomponentstate
SET current_state = 'INSTALL_FAILED'
WHERE host_name = 'cluster-153' AND current_state = 'INSTALLED'
2. 重启ambari
service ambari-server restart
3. 选择重新安装
4. 最后,重新安装成功后
有趣提醒:
oozie 重新安装时,比较特殊,其依赖bigtop-tomcat。如果依赖破坏,需要重新安装bigtop-tomcat。
如果需要删除一个Knox服务,操作如下(HDP2.3版本):
DELETE FROM servicedesiredstate WHERE service_name IN ( SELECT service_name FROM `clusterservices` WHERE service_name LIKE '%Knox%' );
DELETE FROM hostcomponentstate WHERE host_id = 4 AND component_name LIKE '%Knox%';
DELETE FROM hostcomponentdesiredstate WHERE component_name LIKE '%Knox%';
DELETE FROM servicecomponentdesiredstate WHERE service_name IN ( SELECT service_name FROM `clusterservices` WHERE service_name LIKE '%Knox%' );
DELETE FROM clusterservices WHERE service_name LIKE '%Knox%';
简单吧
...