Sparklyr本地连接失败:FindFileOwnerAndPermission错误1789求助
解决Windows下sparklyr本地Spark连接失败(错误1789)的方案
核心问题定位
错误FindFileOwnerAndPermission error (1789): The trust relationship between this workstation and the primary domain failed的本质是Windows域信任关系失效——你的机器与域控制器的身份验证链路断裂,导致winutils.exe在访问Hive临时目录时触发权限验证错误。
分步解决方案
1. 修复域信任关系(优先方案)
- 断开并重新加入域:
- 打开「控制面板」→「系统和安全」→「系统」→「更改设置」→「更改」
- 切换到「工作组」,输入任意工作组名称(如
WORKGROUP),重启机器 - 重启后重新加入原域,输入域管理员账号密码,再次完成重启
- 若无法自行操作,联系IT管理员重置机器的域信任绑定
2. 绕过域验证,自定义Spark临时目录
如果暂时无法修复域信任,可通过配置独立临时目录规避权限问题:
- 在非用户目录下创建Spark临时文件夹,例如
D:\spark_temp - 右键文件夹→「属性」→「安全」,添加你的本地用户账号并赋予「完全控制」权限
- 在R中连接时指定该目录:
sc <- sparklyr::spark_connect( master = "local", config = list( spark.sql.warehouse.dir = "file:///D:/spark_temp/warehouse", spark.local.dir = "file:///D:/spark_temp" ) )
3. 替换兼容版本的winutils.exe
部分旧版winutils.exe在域环境下存在权限验证bug,尝试替换为对应Hadoop版本的兼容版本:
- 匹配你安装的Hadoop版本(如你使用的hadoop3),下载对应winutils.exe
- 替换路径
C:\Users\*******\AppData\Local\spark\spark-3.3.1-bin-hadoop2\tmp\hadoop\bin下的原文件 - 右键新文件→「属性」→「兼容性」,勾选「以管理员身份运行此程序」
4. 用本地账号启动RStudio
若当前RStudio以域账号运行,切换为本地管理员账号启动:
- 右键RStudio图标→「更多」→「以不同用户身份运行」
- 输入本地管理员账号密码,启动后再执行spark_connect命令
内容的提问来源于stack exchange,提问作者Alex W
相关产品推荐
相关产品推荐

