您好我在尝试使用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上没有错误,并且查询成功执行。 最好的猜测是,在获取查询结果时会抛出错误。但是不能找到确切的位置。
如果需要进一步说明以解决问题,请告诉我
提前致谢
答案 0 :(得分:1)
由于您可以获取数据,这意味着您的连接工作正常。再次启动配置单元服务器,然后检查。
如果这不起作用,请检查您的hadoop配置属性。
正如你所说,“我用beeline尝试了同样的事情,当我使用localhost连接时它起作用,但是当我使用服务器名称连接时,执行只是挂起。”,检查主机名是否被反射。
您在哪里使用JDBC连接来连接到配置单元服务器?
答案 1 :(得分:0)
首先启动Hive Server2 ..
hive --service hiveserver&