文档首页 > > 故障排除> 使用Hive> 执行load data local inpath命令报错

执行load data local inpath命令报错

分享
更新时间:2020/08/28 GMT+08:00

问题现象

执行load data local inpath报如下错误:

  • 错误1:
    HiveAccessControlException Permission denied. Principal [name=user1, type=USER] does not have following privileges on Object [type=LOCAL_URI, name=file:/tmp/input/mapdata] for operation LOAD : [SELECT, INSERT, DELETE]
  • 错误2:
    HiveAccessControlException Permission denied. Principal [name=user1, type=USER] does not have following privileges on Object [type=LOCAL_URI, name=file:/tmp/input/mapdata] for operation LOAD : [OBJECT OWNERSHIP]
  • 错误3:
    SemanticException Line 1:23 Invalid path ''/tmp/input/mapdata'': No files matching path file:/tmp/input/mapdata  

原因分析

当前登录的用户不具备操作此目录的权限或者在HiveServer所在节点上没有此目录。

解决方案

通常不建议使用本地文件加载数据到hive表。 建议先将本地文件放入HDFS,然后从集群中加载数据。

Hive对load data local inpath命令有如下权限要求,请对照下述要求是否满足:
  • 由于所有的命令都是发送到主HiveServer上去执行的,所以要求此文件在HiveServer节点上。
  • HiveServer进程是以操作系统上的omm用户启动的,所以要求omm用户对此文件有读权限,对此文件的目录有读、执行权限。
  • 文件的owner需要为执行命令的用户。
  • 当前用户需要对该文件有读、写权限。
  • 要求文件的格式与表指定的存储格式相同。如创建表时指定stored as rcfile,但是文件格式为txt,则不符合要求。
  • 文件名不能以下横线(_)或点(.)开头,以这些开头的文件会被忽略。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问