You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@storm.apache.org by "Ethan Li (JIRA)" <ji...@apache.org> on 2017/11/30 16:17:00 UTC

[jira] [Created] (STORM-2838) Replace log4j-over-slf4j with log4j-1.2-api

Ethan Li created STORM-2838:
-------------------------------

             Summary: Replace log4j-over-slf4j with log4j-1.2-api
                 Key: STORM-2838
                 URL: https://issues.apache.org/jira/browse/STORM-2838
             Project: Apache Storm
          Issue Type: Improvement
            Reporter: Ethan Li
            Assignee: Ethan Li


I tried to setup HdfsBlobStore and an exception shows up when I launch the nimbus.

{code:java}
Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError.
{code}
Found an explanation: https://www.slf4j.org/codes.html#log4jDelegationLoop

This is because storm and hadoop use different logging system:
Storm:  log4j-over-slf4j --> slf4j --> log4j2  or slf4j --> log4j2
Hadoop:  slf4j --> log4j1.2  or   log4j1.2 (directly)
(note: --> means redirecting)

When we add hadoop common lib classpath to nimbus,  log4j-over-slf4j.jar and slf4j-log4j12.jar coexist. 
One way to let storm work with hadoop is to replace log4j-over-slf4j in storm with log4j1.2. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)