如何通过CM API终止CDH中ACTIVATING状态的STREAMSETS Parcel安装?
看你提供的CM API查询结果,这个StreamSets DataCollector 3.2.0.0版本的Parcel确实卡在激活状态了,进度一直停在0,咱们用Cloudera Manager的API来强制处理它:
{ "product" : "STREAMSETS_DATACOLLECTOR", "versions" : "3.2.0.0", "stage" : "ACTIVATING", "state" : { "progress" : 0, "totalProgress" : 100, "count" : 0, "totalCount" : 3 }, "clusterRef" : { "clusterName" : "cluster" } }
下面是具体的操作步骤:
1. 先尝试强制取消激活进程
发送POST请求到这个API端点,中断当前的激活流程:
POST cluster:7180/api/v14/clusters/cluster/parcels/products/STREAMSETS_DATACOLLECTOR/versions/3.2.0.0/commands/cancelActivation
请求体不需要额外内容,传个空的{}就行。这个命令会触发CM终止正在进行的激活操作。
2. 验证状态是否更新
执行完取消命令后,再调用你之前用的查询API确认状态:
GET cluster:7180/api/v14/clusters/cluster/parcels/products/STREAMSETS_DATACOLLECTOR/versions/3.2.0.0
如果状态变成AVAILABLE或者FAILED,就说明取消成功了。
3. 要是取消不管用,试试重置Parcel状态
如果上面的命令没效果,咱们可以重置Parcel的状态。首先得拿到这个Parcel的实体ID,先查一下集群里所有Parcel的信息:
GET cluster:7180/api/v14/clusters/cluster/parcels
在返回结果里找到STREAMSETS_DATACOLLECTOR 3.2.0.0版本对应的parcelId,然后用这个ID发重置命令:
POST cluster:7180/api/v14/clusters/cluster/parcels/{parcelId}/commands/reset
这个操作会把Parcel状态重置回DOWNLOADED,之后你可以重新尝试激活,或者直接删除它。
4. 后续建议
处理完之后,去CM的Web UI确认下Parcel状态正常,另外可以看看CM服务器的日志(一般在/var/log/cloudera-scm-server/目录下),找找激活停滞的原因,避免以后再遇到同样的问题。
内容的提问来源于stack exchange,提问作者PawOfXiaoXiang

