我在Hive中有一个表sdh,它有100000行。 当我执行命令
时 在CLI上 select * from sdh
,显示所有行
但是当我通过直线上的HiveServer2运行它时,同样的命令就会挂起
所有其他具有1000多行的表通过CLI或直线工作正常。
其他人面临类似的问题?
我从日志中得到错误
org.apache.thrift.TApplicationException: Internal error processing FetchResults
at org.apache.thrift.TApplicationException.read(TApplicationException.java:108)
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:71)
at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_FetchResults(TCLIService.java:489)
at org.apache.hive.service.cli.thrift.TCLIService$Client.FetchResults(TCLIService.java:476)
at org.apache.hive.jdbc.HiveQueryResultSet.next(HiveQueryResultSet.java:285)
at org.apache.hive.beeline.BufferedRows.<init>(BufferedRows.java:42)
at org.apache.hive.beeline.BeeLine.print(BeeLine.java:1541)
at org.apache.hive.beeline.Commands.execute(Commands.java:741)
at org.apache.hive.beeline.Commands.sql(Commands.java:657)
at org.apache.hive.beeline.BeeLine.dispatch(BeeLine.java:763)
at org.apache.hive.beeline.BeeLine.begin(BeeLine.java:630)
at org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:363)
at org.apache.hive.beeline.BeeLine.main(BeeLine.java:346)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
错误:检索下一行时出错(state =,code = 0)
答案 0 :(得分:0)
使用直线选项“--incremental = false”。否则,它会尝试同时将整个结果读入内存,如果结果对于可用内存来说太大,则会耗尽内存。
有关将此选项设为默认选项的更多讨论,请点击此处 - https://issues.apache.org/jira/browse/HIVE-7224
答案 1 :(得分:0)
请使用选项--incremental=true
并将其放在直线的-e
选项之前。对我而言,就是这样。