问题描述
在提交拓扑的过程中,提交命令运行到此无法进行。原因为集群资源无法分配topology中配置的stmgr的数量。暂时只能Ctrl+C强制停止命令。
但在submit命令停止后,尝试kill刚提交的topo,出现错误:
尝试使用aurora job killall的命令后:
问题依然存在:
问题解决
问题的原因,是因为虽然在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。即可正常提交。