Hive查询错误:java.io.ioexception错误= 13权限被拒绝
问题描述:
我有一个表报告其中有ID,国家,服务,数量,数量。当我尝试在配置单元中执行以下查询时:Hive查询错误:java.io.ioexception错误= 13权限被拒绝
select * from report
我从配置单元获取正确的数据。但是,当我在select语句中指定的列名:
select service from report
我得到以下异常:
java.io.IOException: Cannot run program "/home/biadmin/hadoop/bin/hadoop" (in directory "/root"): error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at java.lang.Runtime.exec(Runtime.java:617)
at java.lang.Runtime.exec(Runtime.java:450)
at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:262)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:153)
at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1503)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1270)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1088)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:911)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:901)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:792)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: java.io.IOException: error=13, Permission denied
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
at java.lang.ProcessImpl.start(ProcessImpl.java:130)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
... 21 more
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
我得到串联这个错误,有时意味着我得到它,有时它工作正常。我尝试在hive-site.xml和hdfs-site.xml中添加以下内容,但仍然遇到同样的问题。
蜂房的site.xml
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
HDFS-site.xml中
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
有没有什么办法可以永久性地避免这个问题。谢谢大家。
答
这个问题很简单......假设我的Hadoop安装在hduser
我用命令:
su hduser
这不设置所有的参数和打开/根主文件夹。因此,有许可差异。
因此,使用命令:
su - hduser
此设置所需的参数,并直接在hduser的回家打开。这不会导致错误。
关于串联的错误,我用来直接进入服务器使用hduser用户没有给出错误。但通过root进入服务器,然后切换用户给出了错误。
Error说“/ home/biadmin/hadoop/bin/hadoop没有权限” – Kunal 2014-11-03 07:58:24
对不完整的评论: – Kunal 2014-11-03 07:58:59
什么是/ home/biadmin/hadoop/bin/hadoop的用户和组。您的用户是您正在运行hive的用户,它是可以访问hadoop bin的hadoop组的一部分。你的表格和数据文件有什么访问权限? – Kunal 2014-11-03 08:00:19