bucketId out of range: -1 (state=,code=0)
作者:互联网
hive select * from table 出现如上报错
背景 集群为cdp ,hive版本为3.1
集群最开始安装了hive 和tez 没有安装hive on tez。后面发现select count(1)的时候没有启动tez
最后是 hive 不安装 hiveserver2
hive on tez 安装了
另外 这个版本的hive有时候是建外表的,有时候是内表,搞得我都怀疑自己了。。。
建议大家都show create table 看下
说完了。然后我们是用datax从postgresql导数到hive。 这套我们之前在cdh上已经跑了很久了,没有任何问题。结果在cdp的时候报错了。
.
唉 。最后百度无果,国内垃圾。
set hive.mapred.mode=nonstrict;
set hive.optimize.ppd=true;
set hive.optimize.index.filter=true;
set hive.tez.bucket.pruning=true; --根据大佬所说 这条是关键
set hive.explain.user=false;
set hive.fetch.task.conversion=none;
set hive.support.concurrency=true;
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
干,虽说不理解这是啥意思 但是复制了这段 确实就好了。
还有另外一种。查原码
[HIVE-23051] Clean up BucketCodec - ASF JIRAhttps://issues.apache.org/jira/browse/HIVE-23051
直接说了这里一直为true。所以移除就行。自己替换下jar就行。
其实我猜测hive3.1默认是桶表,然后我又没有分桶 桶数量就是-1.这里就会报错
标签:安装,code,bucketId,tez,hive,range,set,报错,true 来源: https://blog.csdn.net/cclovezbf/article/details/123221567