Windows系统安装Spark出现报错无法启动项目,求对应解决方法
Windows系统Spark安装报错解决方案
修复步骤
第一步:解决NativeCodeLoader无法加载Hadoop原生库警告
该警告是Windows运行Spark的核心前置问题,必须修复,操作如下:
- 确认你安装的Spark对应的兼容Hadoop版本(Spark3.0+默认适配Hadoop3.2/3.3版本),下载对应版本的Windows适配工具包,取出
winutils.exe和hadoop.dll两个文件 - 在本地创建无中文、无空格的目录存放上述文件,例如
C:\hadoop\bin - 配置系统环境变量:
- 新增变量
HADOOP_HOME,值为C:\hadoop - 在系统
Path变量中新增条目%HADOOP_HOME%\bin
- 新增变量
- 将
hadoop.dll文件复制到C:\Windows\System32目录下,避免系统全局调用时找不到依赖库
第二步:解决SparkContext初始化失败反射调用异常
该报错通常是环境配置不匹配导致,依次排查以下项:
- JDK版本校验:Spark3.x仅支持JDK8、JDK11两个LTS版本,禁止使用JDK17及以上版本,同时确认
JAVA_HOME环境变量配置正确,路径无中文、无空格,执行java -version可正常返回对应版本信息 - Spark路径校验:Spark解压路径不要包含中文、空格或者特殊字符,禁止放在
C:\Program Files\这类带空格的系统目录下,建议直接放在C:\spark\这类纯英文路径 - Spark环境变量配置:新增系统变量
SPARK_HOME,值为Spark解压根目录,同时在系统Path变量中新增条目%SPARK_HOME%\bin - 端口占用排查:Spark默认会占用7077、4040等端口,执行
netstat -ano | findstr "7077"检查端口是否被占用,如被占用可关闭对应进程或者修改Spark默认启动端口 - 版本兼容性校验:确保下载的Spark预编译包和Hadoop版本匹配,不要跨大版本搭配使用,优先选择Spark官网提供的对应Hadoop版本的预编译安装包
验证方式
所有配置修改完成后,重启命令行工具,执行spark-shell命令,若能正常进入Spark交互界面且无ERROR级别的报错,即修复完成。
注:开头的日志级别调整提示属于常规提示信息,不是报错,不影响程序正常运行。
内容的提问来源于stack exchange,提问作者John Wick
相关产品推荐
相关产品推荐

