You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark创建表遇UnsatisfiedLinkError错误求助(Windows环境)

问题描述

Windows环境下使用Apache Spark 3.3.0/3.3.1创建表时,触发以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

已执行以下操作但问题未解决:

  • 下载对应版本的hadoop.dll与winutils.exe
  • 配置HADOOP_HOME、SPARK_HOME环境变量并添加至系统Path
  • 将上述文件放入system32文件夹
  • 重启电脑

怀疑问题由工作电脑安全设置导致,项目的sbt配置如下:

name := "Simple Project"

version := "1.0"

scalaVersion := "2.12.15"

libraryDependencies ++= Seq("org.apache.spark" %% "spark-sql" % "3.3.1", "io.delta" %% "delta-core" % "2.1.1")
排查与解决办法

针对安全设置和其他可能的原因,试试下面这些操作:

1. 让安全软件放行相关文件

  • 把hadoop.dll和winutils.exe所在目录(包括system32和HADOOP_HOME/bin)添加到安全软件的信任列表,避免文件被拦截或篡改
  • 临时关闭实时防护(需确认符合公司安全规定),测试是否能正常运行

2. 检查文件权限与完整性

  • 右键点击hadoop.dll和winutils.exe,选择「属性」→「安全」,确保当前用户拥有读取和执行权限
  • 重新下载对应Hadoop版本的文件(Spark 3.3.x对应Hadoop 3.3.x版本),校验文件MD5值,避免下载损坏的文件

3. 强制指定Native库路径

在Spark代码中添加以下配置,直接指定hadoop.dll的路径,绕过系统环境变量的可能异常:

System.setProperty("java.library.path", "C:\\your\\hadoop\\bin\\path") // 替换为你的HADOOP_HOME/bin实际路径
val sysPaths = sys.props("java.library.path").split(";")
val loader = classOf[org.apache.hadoop.io.nativeio.NativeIO].getClassLoader
sysPaths.foreach(path => loader.asInstanceOf[java.net.URLClassLoader].addURL(new java.io.File(path).toURI.toURL))

4. 调整Spark的Hadoop依赖版本

修改sbt配置,指定与Spark兼容的Hadoop版本,避免依赖冲突:

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-sql" % "3.3.1" exclude("org.apache.hadoop", "hadoop-client"),
  "org.apache.hadoop" % "hadoop-client" % "3.3.4", // 选择与Spark匹配的Hadoop版本
  "io.delta" %% "delta-core" % "2.1.1"
)

5. 使用无Native依赖的模式

如果上述方法都无效,可强制Spark使用非Native的Hadoop实现,在代码中添加:

spark.conf.set("spark.hadoop.fs.file.impl", "org.apache.hadoop.fs.LocalFileSystem")
spark.conf.set("spark.hadoop.io.native.lib.available", "false")

内容的提问来源于stack exchange,提问作者MystCabe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:40:19