解决Heron Cluster中Topology已存在异常

问题描述

在提交拓扑的过程中,提交命令运行到此无法进行。原因为集群资源无法分配topology中配置的stmgr的数量。暂时只能Ctrl+C强制停止命令。

image

但在submit命令停止后,尝试kill刚提交的topo,出现错误:

image

尝试使用aurora job killall的命令后:

image

问题依然存在:

image

问题解决

问题的原因,是因为虽然在aurora job被成功kill之后,heron的相关metadata都存在与HDFS和Zookeeper中进行保存。在运行submit和kill命令时,都会首先检查HDFS和Zookeeper的相关元数据。因此在拓扑没有正常kill时,虽然aurora job已被手动kill,但在HDFS和zookeeper中仍存在残留的信息。

在Local模式下运行Heron时,遇到该问题,直接清理.herondata目录下的文件即可。但在Cluster中需要清理HDFS和Zookeeper中Heron使用的相关目录,具体如下:

1. 清理HDFS相关目录:

yitian@heron01:~$ hdfs dfs -rm -r /heron/topologies/aurora
18/09/26 01:02:22 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /heron/topologies/aurora

2. 连接Zookeeper,清理其中目录:

yitian@heron01:~$ zkCli.sh -server heron01:2181
[zk: heron01:2181(CONNECTED) 2] rmr /heron   
[zk: heron01:2181(CONNECTED) 3] quit

运行完成后,重新提交可用的topo,而不要尝试仍使用错误发生时的topo。即可正常提交。