Spark/Hadoop/Scala/Java/Python版本兼容及spark-shell启动报错咨询
版本兼容规则说明
Spark与Hadoop、Java、Python、Scala之间存在严格的版本对应要求,版本不匹配会直接导致SparkContext初始化失败:
- 你当前使用的Spark 3.2.0为预编译适配Hadoop 3.2的版本,要求配套的Hadoop(含winutils)版本为3.2.x系列,现有2.5x版本的winutils完全不兼容,是核心报错原因之一
- 其余组件版本符合Spark 3.2的运行要求:Java 1.8、Python 3.7、sbt 1.5.5均在Spark 3.2支持的版本范围内
现有配置错误修正
你当前的环境变量存在两处配置错误,需先修正:
JAVA_HOME值配置错误:需指向JDK根目录,值应为C:\Program Files\Java\jdk1.8.0_311,不可携带\bin后缀,现有配置会导致系统查找Java路径时生成%JAVA_HOME%\bin\bin的无效路径SPARK_HOME值配置错误:需指向Spark根目录,值应为C:\Program Files\spark-3.2.0-bin-hadoop3.2,不可携带\bin后缀,同时现有配置的路径与实际Spark存放路径不一致,缺少Program Files层级
修复后验证方法
- 删除原有错误的
JAVA_HOME、SPARK_HOME、HADOOP_HOME环境变量,按照修正后的路径重新配置 - 下载Hadoop 3.2.x版本对应的winutils.exe,替换
C:\Hadoop\bin下的现有2.5x版本文件 - 重启CMD窗口,依次执行
java -version、winutils version验证基础环境配置正确,再直接执行spark-shell即可正常启动,无需特意进入Spark的bin目录
内容的提问来源于stack exchange,提问作者Saurabh
相关产品推荐
相关产品推荐

