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

标签 hadoop configuration hive

我有一个表格报告,其中包含字段ID,国家/地区,服务,金额,计数。当我尝试在 hive 中执行以下查询时:

select * from report

我从 hive 获得了正确的数据。但是当我在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中添加以下内容,但仍然遇到相同的问题。

hive-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

这不会设置所有参数,而是在/ root主文件夹中打开。因此,存在权限差异。

因此,使用命令:
su - hduser

这将设置所需的参数,并直接在hduser的主目录中打开。这不会给出错误。

关于串联错误,我曾经使用hduser用户直接输入服务器,但未给出错误。但是通过root进入服务器然后切换用户给了错误。

关于hadoop - 配置单元查询错误:java.io.ioexception error = 13权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26708971/

相关文章:

sql - 使用配置单元 udf 函数计算运行总和

java - 配置单元 : Tez how to increase AM Container memory

hadoop - 当我使用 Amazon EMR 上的 Hive 引擎从 Presto 导出数据时发生 FileAlreadyExistsException

java - 在Windows上安装Apache Nutch

.net - SKU代表什么?

jakarta-ee - 集中 quarkus 的通用配置

c++ - 如何在静态库中提供默认的 YAML 配置值?

hadoop - Cascalog first-n - 无法连接谓词

hadoop - 我有CSV和TSV的10个文件。我想使用Apache Hadoop中的MapReduce获得输出什么是CSV和TSV数据

hadoop - MapReduce 中的叉积