: Permission denied: user=root, access=EXECUTE, ino

时间:2025-02-28 06:58:54

 前置操作:  拷贝到 sparkconf/目录    ;  启动了hadoop集群,    启动spark ;    sbin/   ; bin/beeline -u jdbc:hive2://hadoop102:10000 -n root 

就报错了:

Connecting to jdbc:hive2://hadoop102:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop102:10000: Failed to open new session: : : : Permission denied: user=root, access=EXECUTE, inode="/tmp":tm:supergroup:drwxrwx---
 at (:399)
        at (:315)
        at (:242)
        at (:193)
        at (:606)
        at (:1804)
        at (:1822)
        at (:677)
        at (:114)
        at (:3131)
        at (:1173)
        at (ClientNamenodeProtocolServerSideTranslatorP

原因:(不理解)

hdfs上没有root用户,也没有对应的文件夹/user/root

会默认以root身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/xxx , 我的为/user/root,   由于 root用户对hdfs目录并没有写入权限,所以导致异常的发生。而hdfs才有权限创建/user/root

解决方案一(解决简单,但是不推荐)

(1)查看sudoers文件,看是否有添加tm ALL=(ALL) ALL;

这里tm是一个用户

(2)查看配置文件permission下是否为false。

<property>
    <name></name>
    <value>false</value>
</property>

重启集群即可

还有其他方案看不懂:参考博客