我对Hive和HDFS非常陌生,但我已经成功地用java制作了一个功能良好的HiveClient,它成功地连接并执行了对HDFS server.That的查询,除了select语句之外,所有查询都是。
我的代码如下所示:
语句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();}
当我运行它时,错误是:
查询返回非零代码: 9,原因:失败:执行错误,从org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:194) at se.HiveClient.doQuery(HiveClient.java:56) at se.HiveClient.main(HiveClient.java:82)的shark.execution.SparkTask返回代码-101
但是,如果我做一个create或者显示表,它就会运行得很完美。是否存在缺少配置或特权的情况?或者完全是别的什么?
任何关于我可能做错了什么或错过了什么的想法都是非常感谢的。
发布于 2014-12-10 18:33:51
这应该是权限问题。
创建表或显示表需要单元格从其数据库中获取元数据。数据的实际选择需要读取文件。检查授予该文件的权限。
蜂巢可能会作为蜂巢用户进行查询,因此要么应该是文件的所有者,要么应该在正确的组中。
这似乎是一个类似的问题:http://forums.pentaho.com/archive/index.php/t-89586.html
https://stackoverflow.com/questions/27384233
复制相似问题