我试图通过查询将数据从hdfs目录中的文件插入到配置单元表中:
$ jdbc:hive2://localhost:10000> LOAD DATA INPATH '/user/xyz/stdfiles/testtbl.txt' OVERWRITE INTO TABLE testdb.testtbl;
但是查询失败,导致:
错误:编译语句时出错:失败: HiveAuthzPluginException获取权限的错误 hdfs:// localhost:9000 / user / xyz / stdfiles / testtbl.txt:空 (状态= 42000,代码= 40000)
我尝试通过以下命令给出权限,该命令没有错误:
$ hdfs dfs -chown -R stdfiles /user/xyz/stdfiles
$ hdfs dfs -chmod -R 777 /user/xyz/stdfiles/testtbl.txt
已检查:
$ hdfs dfs -ls /user/xyz/stdfiles
19/05/22 09:15:13 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 1 items
-rwxrwxrwx 1 stdfiles supergroup 6 2019-05-22 08:45 /user/xyz/stdfiles/testtbl.txt
通过所需的输出成功插入数据
答案 0 :(得分:0)
在hadoop配置文件core-site.xml中添加以下属性对我有用:)
<property>
<name>hadoop.proxyuser.niazullah.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.niazullah.groups</name>
<value>*</value>
</property>
还要检查用户访问hdfs:
$ hdfs dfs -ls /user
输出:
drwxr-xr-x - main supergroup 0 2019-05-22 13:22 /user/test
“ main”是用户更改的地方,而蜂巢用户则是