本地运行Spark Pi示例正常返回结果,但Worker无资源分配问题问询
解决Spark Standalone集群Worker无资源使用记录的问题
这种情况我之前排查过好几次,核心原因大概率是你的Spark Pi任务没提交到Standalone集群,而是用了默认的local模式在本地跑,所以Worker节点自然不会有任何任务执行记录。
给你一步步拆解解决方法:
确认任务提交模式
Spark默认的spark-submit如果不指定--master参数,会自动使用local[*]模式——也就是直接在你的启动机器上用本地线程执行,完全不依赖你启动的Master和Worker集群。这就是为什么任务能出结果,但集群没动静的原因。提交任务到Standalone集群
重新提交Spark Pi任务时,一定要指定集群的Master地址,命令如下:spark-submit --class org.apache.spark.examples.SparkPi \ --master spark://127.0.0.1:7077 \ $SPARK_HOME/examples/jars/spark-examples*.jar 10其中
10是计算Pi的迭代次数,你可以根据需要调整。验证集群状态
提交任务后,打开Master的Web UI(默认地址是http://127.0.0.1:8080),你会看到:- Worker节点的
Cores Used和Memory Used会显示实际占用的资源 - 页面下方会出现正在运行或已完成的任务详情
- Worker的日志(位于
$SPARK_HOME/work目录下)也会有Executor启动和任务执行的记录
- Worker节点的
额外排查点(如果指定master后仍无反应)
- 检查Master的7077端口是否正常监听:执行
netstat -tulpn | grep 7077(Linux)或netstat -ano | findstr 7077(Windows),确认端口处于监听状态 - 查看Worker的日志文件,看是否有连接Master失败的报错(比如网络权限、端口冲突等)
- 检查Master的7077端口是否正常监听:执行
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

