Hadoop 配置单元查询错误:java.io.ioexception错误=13权限被拒绝

Hadoop 配置单元查询错误:java.io.ioexception错误=13权限被拒绝,hadoop,configuration,hive,Hadoop,Configuration,Hive,我有一个表格报告,其中包含id、国家、服务、金额、计数等字段。当我尝试在配置单元中执行以下查询时: select * from report 我从蜂巢里得到了正确的数据。但当我在select语句中指定列名时: select service from report 我得到以下例外情况: java.io.IOException: Cannot run program "/home/biadmin/hadoop/bin/hadoop" (in directory "/root"): error=1

我有一个表格报告,其中包含id、国家、服务、金额、计数等字段。当我尝试在配置单元中执行以下查询时:

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
java.io.IOException:无法运行程序“/home/biadmin/hadoop/bin/hadoop”(在目录“/root”中):错误=13,权限被拒绝
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
位于java.lang.Runtime.exec(Runtime.java:617)
位于java.lang.Runtime.exec(Runtime.java:450)
位于org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:262)
位于org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:153)
位于org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
位于org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1503)
位于org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1270)
位于org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1088)
位于org.apache.hadoop.hive.ql.Driver.run(Driver.java:911)
位于org.apache.hadoop.hive.ql.Driver.run(Driver.java:901)
位于org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
位于org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
位于org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
位于org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:792)
位于org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
位于org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.hadoop.util.RunJar.main(RunJar.java:212)
原因:java.io.IOException:错误=13,权限被拒绝
位于java.lang.UNIXProcess.forkAndExec(本机方法)
位于java.lang.UNIXProcess(UNIXProcess.java:135)
在java.lang.ProcessImpl.start(ProcessImpl.java:130)
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
... 还有21个
失败:执行错误,从org.apache.hadoop.hive.ql.exec.mr.MapRedTask返回代码1
我同时得到这个错误,意味着有时我得到它,有时它工作正常。我尝试在hive-site.xml和hdfs-site.xml中添加以下内容,但仍然遇到相同的问题

hive site.xml

<property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
</property>
<property>
        <name>dfs.permissions</name>
        <value>false</value>
</property>

hive.cli.print.current.db
符合事实的
hdfs site.xml

<property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
</property>
<property>
        <name>dfs.permissions</name>
        <value>false</value>
</property>

dfs.0权限
错误的

我有没有办法永久地避免这个问题。谢谢大家。

问题很简单。。。假设我的hadoop安装在hduser

我使用命令:

su hduser
su - hduser
这不会设置所有参数并在/root主文件夹中打开。因此,存在许可差异

因此,请使用以下命令:

su hduser
su - hduser
这将设置所需的参数,并直接在hduser的主页中打开。这并没有给出错误


关于tandem的错误,我曾经使用没有给出错误的hduser用户直接进入服务器。但是,通过root用户进入服务器,然后切换用户时出现错误。

错误表示对“/home/biadmin/hadoop/bin/hadoop”没有权限。很抱歉,评论不完整:/home/biadmin/hadoop/bin/hadoop的用户和组是什么。是您运行配置单元的用户,它是hadoop组的一部分,可以访问hadoop bin。对您的表和数据文件有什么访问权限?是的。。。hadoop和hive已安装在同一用户和组中。为了安全起见,我把电话转到了777。但我还是得到了错误。