java HiveClient失败select:java.sql.SQLException:查询返回非零代码:9

时间:2014-12-09 16:44:55

标签: java hadoop jdbc hive shark-sql

我对Hive和HDFS很新,但我已经设法在java中创建一个正常运行的HiveClient,它成功连接并在我的HDFS服务器上执行查询。也就是说,除了之外的所有查询都选择陈述。

我的代码如下:

  Statement stmt;
  ResultSet res;
  try {
      stmt = con.createStatement();
       res = stmt.executeQuery("select * from my_table");
       while (res.next()) {
       System.out.println(res.getString(1));
       }

      res.close();
      stmt.close();
      con.close();
  } catch (SQLExceptionex) {
      ex.printStackTrace();
    }

当我运行它时,错误是这样的:

  

java.sql.SQLException:查询返回非零代码:9,原因:FAILED:执行错误,从shark.execution.SparkTask返回代码-101           在org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:194)           在se.HiveClient.doQuery(HiveClient.java:56)           在se.HiveClient.main(HiveClient.java:82)

但如果我改为执行创建表显示表,它会完美运行。是否会出现缺少配置或特权的情况?或完全不同的东西?

我最欣赏任何关于我可能做错了或错过某些事情的想法。

1 个答案:

答案 0 :(得分:0)

应该是权限问题。

创建表或显示表需要配置单元从其数据库中获取元数据。 实际的数据选择需要读取文件。检查赋予文件的权限。

Hive可能会作为hive用户进行查询,因此要么应该是文件的所有者,要么应该在正确的组中。

这似乎是一个类似的问题:http://forums.pentaho.com/archive/index.php/t-89586.html