问题遇到的现象和发生背景
1:周五快下班的时候,想到hive库查询一张表,突然发现访问会报错,反馈给了DBA,一起找了一整晚到现在还没找到。**是整个库的表都查询不了。
用代码块功能插入代码,请勿粘贴截图
我在hue上执行查询会报错:
select * from 表名 limit 10;
运行结果及报错内容
通过hive客户端执行结果:
select * from 表名 limit 10;
[图片]
[图片]
org.apache.thrift.transport.TTransportException
at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
at org.apache.thrift.transport.TSaslTransport.readLength(TSaslTransport.java:376)
at org.apache.thrift.transport.TSaslTransport.readFrame(TSaslTransport.java:453)
at org.apache.thrift.transport.TSaslTransport.read(TSaslTransport.java:435)
at org.apache.thrift.transport.TSaslClientTransport.read(TSaslClientTransport.java:37)
at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429)
at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318)
at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219)
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:77)
at org.apache.hive.service.rpc.thrift.TCLIService$Client.recv_FetchResults(TCLIService.java:559)
我的解答思路和尝试过的方法
这个表存的是T-1的离线数据, 每天凌晨2点从业务的MongoDB库dump过来的。看最新11月18号凌晨的写和读日志也是正常的。其他没有写入操作,只是每天凌晨调度写入一次。
因此尝试过:
1:把最新的11月17日的hdfs文件删除掉。
2:重建hive表,将hdfs文件移动到新表去。
3:全新从mongodb dump一个表到hive库去。
4:全新从mongodb dump一个表到一个另外一个hive库去。
上面的都失败了,都报如上错误,查询不了。
hive文件格式如下
/user/hive/warehouse/库名.db/表名/monthi=202211/stage-表名-20221117.bson
我想要达到的结果
希望hive库能够能够正常查询和写入