• jar hell & elasticsearch ik 版本问题


    想给es 安装一个ik 的插件, 我的es 是 2.4.0, 下载了一个版本是 1.9.5,

    [2016-10-09 16:56:26,248][INFO ][node ] [node-2] initializing ...

    [2016-10-09 16:56:27,309][ERROR][bootstrap ] Exception
    java.lang.IllegalArgumentException: Plugin [analysis-ik] is incompatible with Elasticsearch [2.4.0]. Was designed for version [2.3.5]
    at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:118)
    at org.elasticsearch.plugins.PluginsService.getPluginBundles(PluginsService.java:378)
    at org.elasticsearch.plugins.PluginsService.(PluginsService.java:128)
    at org.elasticsearch.node.Node.(Node.java:158)
    at org.elasticsearch.node.Node.(Node.java:140)
    at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:143)
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:194)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

    版本不匹配, 我晕!

    原来是这样的:
    Versions
    IK version ES version
    master 5.x -> master
    5.0.0-beta1 5.0.0-beta1
    1.9.5 2.3.5
    1.9.4 2.3.4
    1.9.3 2.3.3
    1.9.0 2.3.0
    1.8.1 2.2.1
    1.7.0 2.1.1
    1.5.0 2.0.0
    1.2.6 1.0.0
    1.2.5 0.90.x
    1.1.3 0.20.x
    1.0.0 0.16.2 -> 0.19.0

    可是, 其中没有一个ik 的版本是和我的2.4.0 的ES 匹配的啊!

    修改ik 的插件描述文件:
    vi plugin-descriptor.properties
    将 改成了 2.4.0
    elasticsearch.version=2.3.5
    ->
    elasticsearch.version=2.4.0

    伴随着一个侥幸的心理, 试试吧, 不至于一个版本差别这么小就导致了不兼容了吧!

    重启ES, 还是不行! 出现了 jar hell ! OMG !

    [2016-10-09 17:00:20,652][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in
    [2016-10-09 17:00:21,325][INFO ][node ] [node-2] version[2.4.0], pid[14064], build[ce9f0c7/2016-08-29T09:14:17Z]
    [2016-10-09 17:00:21,325][INFO ][node ] [node-2] initializing ...

    [2016-10-09 17:00:22,532][ERROR][bootstrap ] Exception
    java.lang.IllegalStateException: failed to load bundle [file:/usr/share/elasticsearch/plugins/ik/httpcore-4.4.4.jar, file:/usr/share/elasticsearch/plugins/ik/commons-codec-1.9.jar, file:/usr/share/elasticsearch/plugins/ik/httpclient-4.5.2.jar, file:/usr/share/elasticsearch/plugins/ik/elasticsearch-analysis-ik-1.9.5.jar, file:/usr/share/elasticsearch/plugins/ik/commons-logging-1.2.jar] due to jar hell
    at org.elasticsearch.plugins.PluginsService.loadBundles(PluginsService.java:421)
    at org.elasticsearch.plugins.PluginsService.(PluginsService.java:129)
    at org.elasticsearch.node.Node.(Node.java:158)
    at org.elasticsearch.node.Node.(Node.java:140)
    at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:143)
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:194)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
    Caused by: java.lang.IllegalStateException: jar hell!
    class: org.elasticsearch.indices.analysis.IKIndicesAnalysis$2
    jar1: /usr/share/elasticsearch/lib/elasticsearch-analysis-ik-1.9.5.jar
    jar2: /usr/share/elasticsearch/plugins/ik/elasticsearch-analysis-ik-1.9.5.jar
    at org.elasticsearch.bootstrap.JarHell.checkClass(JarHell.java:280)
    at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:186)
    at org.elasticsearch.plugins.PluginsService.loadBundles(PluginsService.java:419)
    ... 7 more

    jar hell 表明是同名jar , 不同版本的冲突, (也有可能是相同版本)

    仔细一看, 原来有两个 elasticsearch-analysis-ik-1.9.5.jar, 第一个是我手动拷贝到 kibana/lib 下去的, 第二个是 kibana plugins下的, 哦!

    删除kibana/lib 中的那个 就可以了!

  • 相关阅读:
    Linux实时性分析-schedule-调度器
    中断解析
    网络商城-PrestaShop
    和学生的学习互动记录(10嵌)
    QQ记录
    Windows7硬盘安装Fedora16图文教程
    今目标登录时报网络错误E110
    vs环境配置——vs快捷键配置——vs插件配置——vs环境设置
    如何防止app接口被别人调用
    mvc4 找到多个与名为“xx”的控制器匹配的类型
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/5943016.html
Copyright © 2020-2023  润新知