hive:select*from table对于通过hiveserver2具有超过5000行的表失败

nwnhqdif  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(397)

我在hive中有一个表sdh,它有100000行。当我执行命令时 select * from sdh 在cli上,将显示所有行
但是当我在beeline上通过hiveserver2运行它时,同样的命令挂起了
所有其他有1000多行的表都可以通过cli或beeline正常工作。
还有人面临类似的问题吗?
我从日志中发现了错误

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)

错误:检索下一行时出错(状态=,代码=0)

xmq68pz9

xmq68pz91#

使用选项“--incremental=false”和beeline。否则,它会尝试同时将整个结果读入内存,如果结果对于可用内存来说太大,则会耗尽内存。
关于将此选项设为默认选项的更多讨论如下-https://issues.apache.org/jira/browse/hive-7224

fnx2tebb

fnx2tebb2#

请使用该选项 --incremental=true 把它放在 -e 直线选项。对我来说就是这样。

相关问题