storm服务器上运行的elastic 5.0客户端问题,因为存在log4j依赖关系

x33g5p2x  于 2021-06-21  发布在  Storm
关注(0)|答案(1)|浏览(465)

最近我们升级到了elastic 5.0。elastic 5.0中的java客户机对log4j 2.6有一个硬依赖。另一方面,storm server(版本1.0.2)使用旧版本的log4j,两者都是硬连接的依赖关系。下面是我们在尝试部署到服务器时遇到的错误,我可以看到“prebuilttransportclient”无法示例化。
java.lang.nosuchmethoderror:org.apache.logging.log4j.logger.info(ljava/lang/string;ljava/lang/object;)v
我已经向elastic提出了这个问题,他们已经承认了这个问题,并提到他们正在开发一个真正的客户机,它的依赖性较小。
有什么解决方法或建议暂时绕过这个问题吗?

lrl1mhuk

lrl1mhuk1#

我找到了一个解决办法,现在它正在工作。我就是这么做的,
storm使用python脚本从/lib下的指定文件夹加载log4j文件。storm的最新版本使用log4j2.1
我把log4j 2.6.2文件复制到那个文件夹中。
现在,当我部署Topology时,storm开始在类路径中使用log4j2.6.2。
弹性客户端得到了它所需要的,它开始工作。
在轻量级弹性客户端发布之前,我们将继续使用此解决方案。

相关问题