AWS Spark独立集群启动后Web UI无法访问求助
排查Spark Standalone集群UI无法访问的问题
我之前也碰到过类似的情况,咱们一步步来定位问题:
先检查URL是否存在输入错误
看你给出的提示信息,Spark集群的URL是http://ec2-38-218-104-6.us-west-2.compute.amazonaws.com:8080,但Ganglia的URL里写的是ec2-388-218-104-6——这里明显多了一个数字8,大概率是复制粘贴时的笔误。先确认你访问的Spark URL和启动提示里的完全一致,没有数字错误。验证EC2安全组的端口规则
Ganglia能正常访问说明5080端口已经开放,但Spark Standalone UI用的是8080端口,你需要检查主节点所属的安全组是否允许外部访问8080端口:- 登录AWS控制台,找到对应的EC2主节点
- 查看它的安全组配置,添加一条入站规则:允许TCP 8080端口,来源设置为你的本地IP(或者临时设为
0.0.0.0/0做测试,测试完记得改回来保证安全)
登录主节点检查Spark Master服务状态
用你的PEM文件SSH登录主节点:ssh -i PATH_TO_PEM_FILE ec2-user@ec2-38-218-104-6.us-west-2.compute.amazonaws.com然后执行
jps命令,查看是否有Master进程在运行。如果没有,手动启动Master服务:$SPARK_HOME/sbin/start-master.sh启动后再刷新Spark UI页面试试。
查看Spark Master日志找报错信息
如果Master进程没启动,去Spark的日志目录查看具体错误:cd $SPARK_HOME/logs cat spark-*-master-*.out日志里会告诉你启动失败的原因,比如端口被占用、配置错误等。
检查主机名绑定问题
有时候EC2实例的公网IP和主机名映射有问题,Spark Master可能绑定到了私有IP,导致公网无法访问。你可以修改Spark的配置文件:- 编辑
$SPARK_HOME/conf/spark-env.sh(如果没有就复制spark-env.sh.template重命名) - 添加一行:
export SPARK_MASTER_HOST=ec2-38-218-104-6.us-west-2.compute.amazonaws.com - 重启Master服务:
$SPARK_HOME/sbin/stop-master.sh && $SPARK_HOME/sbin/start-master.sh
- 编辑
内容的提问来源于stack exchange,提问作者Dave Trower
相关产品推荐
相关产品推荐

