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

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. 修复域信任关系(优先方案)

  • 断开并重新加入域:
    1. 打开「控制面板」→「系统和安全」→「系统」→「更改设置」→「更改」
    2. 切换到「工作组」,输入任意工作组名称(如WORKGROUP),重启机器
    3. 重启后重新加入原域,输入域管理员账号密码,再次完成重启
  • 若无法自行操作,联系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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:55:17