Storm:Kafka 到 HDFS - 依赖 jar 问题
Storm: Kafka to HDFS - dependency jar issues
我已经构建了一个风暴拓扑,它使用来自 kafka 的数据并写入 hdfs。
当使用如下所示的 storm 和 kafka 依赖项时,
<storm.version>0.10.0.2.3.4.0-3485</storm.version>
<kafka.version>0.8.2.1</kafka.version>
拓扑失败,出现以下异常:
java.lang.NoSuchMethodError: kafka.javaapi.consumer.SimpleConsumer.<init>(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V
at storm.kafka.DynamicPartitionConnections.register(DynamicPartitionConnections.java:60)
at storm.kafka.PartitionManager.<init>(PartitionManager.java:66)
at storm.kafka.ZkCoordinator.refresh(ZkCoordinator.java:98)
at storm.kafka.ZkCoordinator.getMyManagedPartitions(ZkCoordinator.java:69) at storm.kafka.KafkaSpout.nextTuple(KafkaSpout.java:138)
at backtype.storm.daemon.executor$fn__7098$fn__7113$fn__7142.invoke(executor.clj:596)
at backtype.storm.util$async_loop$fn__543.invoke(util.clj:475)
at clojure.lang.AFn.run(AFn.java:22)
at java.lang.Thread.run(Thread.java:745)
但是,当使用如下所示的 storm 和 kafka 依赖项时,
<storm.version>0.9.3.2.2.4.0-2633</storm.version>
<kafka.version>0.8.2.1</kafka.version>
拓扑 运行 正常,正在下载消息并写入 hdfs,没有任何问题!!
有人可以帮助解决问题的原因并帮助我解决问题![=13=]
HDP 2.3.4 supports Kafka-0.9 out of the box.
并且不建议使用与 HDP 堆栈不同的版本,因为该行为尚未经过测试,因此不受支持。
尝试从这里更改 storm-kafka 依赖项:
<groupId>org.apache.storm</groupId>
<artifactId>storm-kafka</artifactId>
<version>${storm.version}</version>
<scope>compile</scope>
对此:
<groupId>org.apache.storm</groupId>
<artifactId>storm-kafka</artifactId>
<version>0.9.3.2.2.4.0-2633</version>
<scope>compile</scope>
并将 Storm 和 Kafka 版本保留为:
<storm.version>0.10.0.2.3.4.0-3485</storm.version>
<kafka.version>0.8.2.1</kafka.version>
我已经构建了一个风暴拓扑,它使用来自 kafka 的数据并写入 hdfs。
当使用如下所示的 storm 和 kafka 依赖项时,
<storm.version>0.10.0.2.3.4.0-3485</storm.version>
<kafka.version>0.8.2.1</kafka.version>
拓扑失败,出现以下异常:
java.lang.NoSuchMethodError: kafka.javaapi.consumer.SimpleConsumer.<init>(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V
at storm.kafka.DynamicPartitionConnections.register(DynamicPartitionConnections.java:60)
at storm.kafka.PartitionManager.<init>(PartitionManager.java:66)
at storm.kafka.ZkCoordinator.refresh(ZkCoordinator.java:98)
at storm.kafka.ZkCoordinator.getMyManagedPartitions(ZkCoordinator.java:69) at storm.kafka.KafkaSpout.nextTuple(KafkaSpout.java:138)
at backtype.storm.daemon.executor$fn__7098$fn__7113$fn__7142.invoke(executor.clj:596)
at backtype.storm.util$async_loop$fn__543.invoke(util.clj:475)
at clojure.lang.AFn.run(AFn.java:22)
at java.lang.Thread.run(Thread.java:745)
但是,当使用如下所示的 storm 和 kafka 依赖项时,
<storm.version>0.9.3.2.2.4.0-2633</storm.version>
<kafka.version>0.8.2.1</kafka.version>
拓扑 运行 正常,正在下载消息并写入 hdfs,没有任何问题!!
有人可以帮助解决问题的原因并帮助我解决问题![=13=]
HDP 2.3.4 supports Kafka-0.9 out of the box.
并且不建议使用与 HDP 堆栈不同的版本,因为该行为尚未经过测试,因此不受支持。
尝试从这里更改 storm-kafka 依赖项:
<groupId>org.apache.storm</groupId>
<artifactId>storm-kafka</artifactId>
<version>${storm.version}</version>
<scope>compile</scope>
对此:
<groupId>org.apache.storm</groupId>
<artifactId>storm-kafka</artifactId>
<version>0.9.3.2.2.4.0-2633</version>
<scope>compile</scope>
并将 Storm 和 Kafka 版本保留为:
<storm.version>0.10.0.2.3.4.0-3485</storm.version>
<kafka.version>0.8.2.1</kafka.version>