首页 文章

Hive Solr存储处理程序Httpclient错误

提问于
浏览
0

我开发了Hive solrCloud存储处理程序,当我运行select语句时,hive会抛出以下错误:

线程“main”中的异常java.lang.VerifyError:错误的返回类型异常详细信息:位置:org / apache / solr / client / solrj / impl / HttpClientUtil.createClient(Lorg / apache / solr / common / params / SolrParams; Lorg /阿帕奇/ HTTP /康恩/ ClientConnectionManager)Lorg /阿帕奇/ HTTP / IMPL /客户/ CloseableHttpClient; @ 62:areturn原因:输入'org / apache / http / impl / client / DefaultHttpClient'(当前帧,堆栈[0])不能分配给'org / apache / http / impl / client / CloseableHttpClient'(来自方法签名) )当前帧:bci:@ 62 flags:{} locals:{'org / apache / solr / common / params / SolrParams','org / apache / http / conn / ClientConnectionManager','org / apache / solr / common / params / ModifiableSolrParams','org / apache / http / impl / client / DefaultHttpClient'} stack:{'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中的append_frame(@ 47,对象[#127]) .solrj.impl.CloudSolrClient . (CloudSolrClient.java:189)

我需要在类路径中更新任何jar吗?

PS:我没有写入权限在Hadoop或hive lib目录中添加任何jar . 系统配置:Hive 0.13,solrcloud 5.2 .

1 回答

  • 0

    JIRA中存在 solrj httpclient 版本冲突的未解决问题 . 此问题的根本原因是hadoop类路径中的httpclient库版本冲突 . solrj客户端没有被正确版本的httpclient初始化 .
    使用默认Httpclient初始化solrj客户端应解决此问题 .
    例如

    SystemDefaultHttpClient httpClient = new SystemDefaultHttpClient();
    this.server = new CloudSolrClient(url,httpClient);
    

    您可以导出hadoop类路径以将其他jar文件添加到classpath . 检查blog以将jar添加到mapreduce作业类路径 .

    export HADOOP_CLASSPATH=/xxx/noggit-0.6.jar:/xxx/httpclient-4.5.1.jar
    

相关问题