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

java HiveClient失败选择:java.sql.SQLException:查询返回非零代码:9,java,hadoop,jdbc,hive,shark-sql,Java,Hadoop,Jdbc,Hive,Shark Sql,我对Hive和HDFS非常陌生,但我已经设法用java制作了一个功能正常的HiveClient,它成功地连接并在我的HDFS服务器上执行查询。也就是说,除了select语句之外的所有查询 我的代码如下所示: 当我运行它时,错误如下: java.sql.SQLException:查询返回非零代码:9,原因:失败:执行错误,返回shark.Execution.SparkTask中的代码-101 位于org.apache.hadoop.hive.jdbc.HiveStatement.executeQu

我对Hive和HDFS非常陌生,但我已经设法用java制作了一个功能正常的HiveClient,它成功地连接并在我的HDFS服务器上执行查询。也就是说,除了select语句之外的所有查询

我的代码如下所示:

当我运行它时,错误如下:

java.sql.SQLException:查询返回非零代码:9,原因:失败:执行错误,返回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)

但是,如果我改为创建表或显示表,它运行得非常好。是否存在配置或权限缺失的情况?或者完全是别的什么


任何关于我哪里做错了或错过了什么的想法都是非常感谢的。

这应该是权限问题

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

配置单元可能会以配置单元用户的身份进行查询,因此应该是文件的所有者,或者应该在正确的组中


这似乎是一个类似的问题:

谢谢,我对外部表文件的所有用户组都提供了完全权限,但仍然失败。当我为我的用户检查用户授权时,我什么也没有得到,应该是这样吗?我只是假设配置单元用户与服务器的用户相同,但这可能不对?我是否需要在配置文件或类似文件中为配置单元设置任何权限?
  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();
    }