正在将log4j1.2更新为库hadoop-mapreduce-client-core中存在的log4j 2

rjzwgtxy  于 2022-11-01  发布在  Hadoop
关注(0)|答案(1)|浏览(211)

我需要从hadoop-mapreduce-client-core lib中排除log4j1.2依赖项,并在我的pom中明确包含log4j2版本,但以下版本没有可用的升级版本,并且log4j2与3.3.0版本向后不兼容

<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>3.3.0</version>

如果我们有任何解决方法,请提出建议

bkhjykvo

bkhjykvo1#

这主要是this post的一个重复。我没有标记为重复,因为它有一个hadoop旋转。
你不能随意升级一个log4j文件,并希望它能修复一些问题。
Apache Log4j小组建议从JAR文件中删除JMSAppender和SocketServer(它们在CVE-2019-17571中存在漏洞),但不会受到完全相同的Log 4Shell问题的影响。
您可以使用zip命令删除受影响的类。用您的文件名/版本替换文件名/版本:

zip -d log4j-1.2.16.jar org/apache/log4j/net/JMSAppender.class 
    zip -d log4j-1.2.16.jar org/apache/log4j/net/SocketServer.class

您可以使用less和grep浏览zip中的文件,例如less log4j-1.2.16.jar | grep JMSAppender
我希望您可以将特定版本从log4j-1.2.16.jar更改为log4j-[your version].jar
如果你不想这样做,你需要升级hadoop核心中的log4j 2,并从那里构建一个版本。

相关问题