Hiveserver2无法从远程连接获取查询结果

时间:2014-04-17 11:26:09

标签: hadoop jdbc mapreduce hive

您好我在尝试使用hiveserver2从远程hadoop群集中获取数据时遇到问题。

JDBC连接在某种意义上起作用,即show tables等元数据查询正在运行,甚至需要简单列出数据的查询(例如select * from table)也在工作。但是当查询时,导致hadoop上的map-reduce作业,执行如select count(*) from table然后它会抛出连接异常。我可以在hive日志中看到执行查询没有任何错误。

我用beeline尝试了同样的事情,当我使用localhost进行连接时它起了作用,但是当我使用服务器名称连接时,执行只是挂起。

我确信我有一些导致此问题的配置属性。

我使用的是hadoop 2.0版和Hive版本0.12.0

为了清楚起见,客户端抛出的错误如下

Exception in thread "main" java.sql.SQLException:   org.apache.thrift.transport.TTransportException
at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:203)
at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:300)
at com.nanobi.contentserver.Aatest.HiveJdbcClient.main(HiveJdbcClient.java:57)

就像我说的那样,服务器或hive.log上没有错误,并且查询成功执行。 最好的猜测是,在获取查询结果时会抛出错误。但是不能找到确切的位置。

如果需要进一步说明以解决问题,请告诉我

提前致谢

2 个答案:

答案 0 :(得分:1)

由于您可以获取数据,这意味着您的连接工作正常。再次启动配置单元服务器,然后检查。

如果这不起作用,请检查您的hadoop配置属性。

正如你所说,“我用beeline尝试了同样的事情,当我使用localhost连接时它起作用,但是当我使用服务器名称连接时,执行只是挂起。”,检查主机名是否被反射。

您在哪里使用JDBC连接来连接到配置单元服务器?

答案 1 :(得分:0)

首先启动Hive Server2 ..

  

hive --service hiveserver&