Windows10 64位下Spark-2.3一主一从配置任务提交失败求助
针对Windows10 64位Spark2.3一主一从集群任务提交失败的排查方案
结合你给出的已完成配置步骤,我整理了几个高频问题点和对应的排查方法,帮你定位任务失败的原因:
一、环境变量细节校验
- 检查
HADOOP_CONF_DIR路径格式:Windows系统下建议使用正斜杠/或双反斜杠\\避免转义问题,比如将路径改为F:/spark/Hadoop2/hadoop-2.7.6/etc/hadoop - 确认winutils.exe是否存在:Windows下Spark依赖Hadoop的winutils工具,你需要下载与hadoop-2.7.6版本匹配的winutils.exe,放到
HADOOP_HOME/bin目录下,缺失这个工具会直接导致HDFS相关操作失败 - 验证JDK位数:确保
JAVA_HOME指向的是64位JDK1.8,虽然你的版本1.8.0_121符合要求,但32位JDK会和64位系统/Spark产生兼容性问题
二、Hadoop配置文件关键项检查
core-site.xml
- 确认
fs.defaultFS配置的主节点地址正确,比如hdfs://master:9000,同时在C:\Windows\System32\drivers\etc\hosts文件中添加主从节点的主机名-IP映射(例如192.168.1.100 master),避免节点间解析失败 - 检查
hadoop.tmp.dir配置的临时目录是否存在且有读写权限,建议设置为自定义路径比如F:/spark/hadoop_tmp,提前创建好目录
hdfs-site.xml
- 调整
dfs.replication值:一主一从集群中,副本数建议设置为1(因为只有一个DataNode节点),避免出现副本无法写入的错误 - 确认
dfs.namenode.name.dir和dfs.datanode.data.dir的路径已创建且权限充足,比如设置为F:/spark/hadoop_data/namenode和F:/spark/hadoop_data/datanode
mapred-site.xml
- 确保已将
mapred-site.xml.template重命名为mapred-site.xml,如果是Spark standalone集群,至少要配置mapreduce.framework.name为yarn或local(根据你的集群模式选择)
三、Spark集群启动与任务提交校验
- 确认主节点正常运行:启动主节点后,访问
http://你的主节点IP:8080(默认端口8080),查看集群状态是否显示正常 - 正确启动从节点:执行命令
spark-class org.apache.spark.deploy.worker.Worker spark://master:7077(默认主节点端口7077),确保从节点能成功注册到主节点,同时关闭Windows防火墙避免节点间通信被拦截 - 提交任务时指定集群地址:使用
spark-submit命令时必须加上--master spark://master:7077参数,否则会默认使用local模式,无法提交到集群
四、日志定位具体错误
如果以上排查都没问题,直接查看Spark日志:日志默认存放在SPARK_HOME/logs目录下,spark-*-master-*.out和spark-*-worker-*.out文件中会记录详细的错误信息(比如连接超时、权限不足、依赖缺失等),根据日志内容可以精准定位问题。
内容的提问来源于stack exchange,提问作者adihere
相关产品推荐
相关产品推荐

