我开发了hive solrcloud存储处理程序,当我运行select语句时,hive抛出以下错误:
线程“main”java.lang.verifyerror中出现异常:返回类型错误
异常详细信息:
位置:org/apache/solr/client/solrj/impl/httpclientutil.createclient(lorg/apache/solr/common/params/solrparams;lorg/apache/http/conn/clientconnectionmanager;)lorg/apache/http/impl/client/closeablehttpclient@62:返回
原因:
类型“org/apache/http/impl/client/defaulthttpclient”(当前帧,堆栈[0])不可分配给“org/apache/http/impl/client/closeablehttpclient”(来自方法签名)
当前帧:bci:@62标志:{}局部变量:{'org/apache/solr/common/params/solrparams','org/apache/http/conn/clientconnectionmanager','org/apache/solr/common/params/modifiablesolrparams','org/apache/http/impl/client/defaulthttpclient'}堆栈:{'org/apache/http/impl/client/defaulthttpclient'}
字节码:
0000000:bb00 0359 2ab7 0004 4db2 0005 b900 0601
0000010:0099 001e b200 05bb 0007 59b7 0008 1209
0000020:b600 0a2c b600 0bb6 000c b900 0d02 00bb
0000030:0011 592b b700 124e 2d2c b800 102d b0
stackmap表:在org.apache.solr.client.solrj.impl.cloudsolrclient.(cloudsolrclient)追加Šframe(@47,object[Š127])。java:189)
类路径中有任何jar需要更新吗?
ps:我没有写权限在hadoop或hivelib目录中添加任何jar。系统配置:hive 0.13,solrcloud 5.2。
1条答案
按热度按时间a9wyjsp71#
jira中存在一个关于solrj httpclient版本冲突的公开问题。此问题的根本原因是hadoop类路径中的httpclient库版本冲突。solrj客户端未被正确版本的httpclient初始化。
用默认的httpclient初始化solrj客户端应该可以解决这个问题。
例如
您可以导出hadoop类路径以将其他jar文件添加到类路径。查看博客,了解如何将jar添加到mapreduce作业类路径。