部署Heron集群提交WordCountTopology时创建任务异常终止求助
排查Heron拓扑提交卡在"Creating job"的问题
看起来你在搭建Heron集群提交拓扑时遇到了卡壳的情况,我结合类似场景的排查经验,给你梳理几个关键的排查方向:
第一步:先抓关键日志定位问题
提交卡住最直接的突破口就是日志,优先检查这几个地方:
- Heron提交客户端日志:重新提交时加上
--verbose参数,比如:
这会输出更详细的交互细节,能看到和Aurora、ZK的通信是否有异常。heron submit aurora/your-cluster/your-role WordCountTopology.jar com.example.WordCountTopology --verbose - Aurora Scheduler日志:去主节点heron01的Aurora日志目录(通常是
/var/log/aurora/scheduler/)搜索WordCountTopology,看有没有任务创建失败的报错,比如资源不足、权限拒绝、镜像拉取失败之类的信息。 - Mesos Slave日志:从节点heron02的Mesos slave日志(
/var/log/mesos/slave/)里,检查是否有接收任务失败的记录,比如Executor启动失败、资源分配被拒绝的内容。 - Heron Executor日志:如果任务尝试启动过,日志会在Mesos slave的临时工作目录里,路径大概是
/tmp/mesos/slaves/<slave-id>/frameworks/<framework-id>/executors/<executor-id>/runs/latest/,看看有没有初始化失败的堆栈信息。
第二步:验证核心配置的正确性
Heron和周边组件的配置很容易出问题,重点核对这些:
- Heron集群配置:打开
~/.heron/conf/aurora/cluster.yaml,确认:heron.aurora.scheduler.uri是否指向heron01的Aurora Scheduler地址(比如http://heron01:8081)heron.zookeeper.servers是否正确填写了heron01的ZK地址和端口(默认2181)heron.directory.hdfs.root配置的HDFS路径是否有效,且Heron有读写权限(比如hdfs://heron01:9000/heron)
- Aurora与Mesos的关联:在heron01的Mesos UI(5050端口)里,检查Frameworks页面是否有Aurora的条目,状态是否为Active。
- ZK节点状态:用
zkCli.sh -server heron01:2181连接ZK,查看/heron节点是否存在,/heron/topologies下有没有拓扑提交的痕迹。
第三步:检查权限与资源配额
很多时候卡住是权限或资源不够导致的:
- 资源配额:在Aurora UI(heron01:8081)里查看你提交拓扑用的角色(比如
prod)是否有足够的CPU、内存配额,同时确认WordCountTopology的资源请求(cluster.yaml里的heron.instance.cpu、heron.instance.memory.mb)没有超过heron02的Mesos slave可用资源(可以在heron02的Mesos UI查看)。 - HDFS权限:确认运行Heron提交客户端的用户,以及Aurora任务运行的用户(通常是
aurora)对HDFS的Heron根目录有读写权限,用hdfs dfs -ls /heron检查,必要时用hdfs dfs -chmod调整。 - 网络连通性:确保heron01和heron02之间的关键端口能正常访问:Mesos Master(5050)与Slave(5051)、Aurora Scheduler(8081)与Observer(1338)、ZK(2181)、HDFS(9000/50070)。
第四步:确认Aurora任务的实际状态
有时候提交命令卡住,但Aurora可能已经创建了任务只是状态异常:
- 用Aurora命令行工具查看任务列表:
看是否有aurora job list your-cluster/your-roleWordCountTopology相关的任务,状态可能是FAILED、LOST或者INITIALIZING。 - 如果任务存在,用下面的命令查看详细错误:
aurora job inspect your-cluster/your-role/WordCountTopology
几个常见坑点提醒
- 提交拓扑时指定的Aurora角色,必须是Aurora Scheduler配置中允许的角色,否则会被拒绝。
- 注意Heron、Mesos、Aurora的版本兼容性,比如Heron 0.17.x通常兼容Mesos 1.0.x-1.5.x、Aurora 0.22.x左右。
- 检查Mesos slave的临时目录(默认
/tmp/mesos)权限,运行Mesos slave的用户需要有读写权限。
内容的提问来源于stack exchange,提问作者Yitian Zhang
相关产品推荐
相关产品推荐

