Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在storm群集上部署拓扑时出错_Java_Logging_Apache Kafka_Apache Storm - Fatal编程技术网

Java 在storm群集上部署拓扑时出错

Java 在storm群集上部署拓扑时出错,java,logging,apache-kafka,apache-storm,Java,Logging,Apache Kafka,Apache Storm,我试图在storm clustre上部署一个简单的单词计数拓扑。我使用kafka作为输入(kafka Spout)。这是我得到的错误 java.lang.NoClassDefFoundError:无法在kafka.utils.Logging$class.Logger(Logger.java:39)的org.apache.log4j.Logger.getLogger(Logger.java:39)上初始化类org.apache.log4j.Log4jLoggerFactory,在kafka.con

我试图在storm clustre上部署一个简单的单词计数拓扑。我使用kafka作为输入(kafka Spout)。这是我得到的错误

java.lang.NoClassDefFoundError:无法在kafka.utils.Logging$class.Logger(Logger.java:39)的org.apache.log4j.Logger.getLogger(Logger.java:39)上初始化类org.apache.log4j.Log4jLoggerFactory,在kafka.consumer.SimpleConsumer.Logger$lzycompute(SimpleConsumer.scala:30)上初始化类kafka.consumer.SimpleConsumer.liftedTree1$1(SimpleConsumer.scala:74)kafka.consumer.SimpleConsumer.kafka$consumer.SimpleConsumer.liftedTree1$1(SimpleConsumer.scala:74)kafka.consumer.SimpleConsumer.kafka$consumer$SimpleConsumer$$sendRequest(SimpleConsumer.scala:68)kafka.consumer.SimpleConsumer在storm.kafka.KafkaUtils.ZkCoordinator.refresh(ZkCoordinator.java:98)中,在storm.kafka.KafkaUtils.KafkaUtils.getOffset(KafkaUtils.java:77)中,在storm.kafka.KafkaUtils.consumer.SimpleConsumer.getOffsetsBefore(SimpleConsumer.scala:79)中在storm.kafka.ZkCoordinator.getMyManagedPartitions(ZkCoordinator.java:69)在storm.kafka.KafkaSpout.nextTuple(KafkaSpout.java:135)在backtype.storm.daemon.executor$fn_u4654$fn_u4669$fn_u4698.invoke(executor.clj:565)在backtype.storm.util$async_循环$fn_u458.invoke(util.clj:463)在clojure.lang.AFn.run.run(AFn.java:24)在java.lang.run.java线程运行(Thread.java:745)


通过在我的storm库中添加log4j-over-slf4j-1.6.6.jar解决了这个问题。

我正在使用

  • 风暴0.9.6
  • 卡夫卡0.9.0
在storm 0.9.6中,它使用slf4j。因此,您需要将其从kafka引用中排除,并包含log4j。下面是我的pom.xml

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.10</artifactId>
    <version>0.9.0.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
        <!--<exclusion>-->
            <!--<groupId>log4j</groupId>-->
            <!--<artifactId>log4j</artifactId>-->
        <!--</exclusion>-->
    </exclusions>
</dependency>

org.apache.kafka
卡夫卡2.10
0.9.0.0
org.apache.zookeeper
动物园管理员
org.slf4j
slf4j-log4j12