2

当我的风暴拓扑收到来自 kafka 的第一条消息并且工人死亡时,我遇到了错误。

2015-08-13 12:44:58 b.s.d.executor [INFO] Finished loading executor hdfs-bolt:[3 3]
2015-08-13 12:44:58 b.s.util [ERROR] Async loop died!
java.lang.RuntimeException: Could not instantiate a class listed in config under section topology.metrics.consumer.register with fully qualified name org.apache.hadoop.metrics2.sink.storm.StormTimelineMetricsSink
at backtype.storm.metric.MetricsConsumerBolt.prepare(MetricsConsumerBolt.java:46) ~[storm-core-0.9.3.2.2.6.3-1.jar:0.9.3.2.2.6.3-1]
at backtype.storm.daemon.executor$fn__6414$fn__6427.invoke(executor.clj:732) ~[storm-core-0.9.3.2.2.6.3-1.jar:0.9.3.2.2.6.3-1]
at backtype.storm.util$async_loop$fn__451.invoke(util.clj:463) ~[storm-core-0.9.3.2.2.6.3-1.jar:0.9.3.2.2.6.3-1]
at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.metrics2.sink.storm.StormTimelineMetricsSink

有人可以帮我解决这个问题。

4

1 回答 1

0
  • 检查使用“rpm -qa | grep ambari”安装的 Ambari 版本,并检查所有主机的“/usr/lib/storm/lib”以获取与版本匹配的 ambari 指标 jar
  • 示例:ambari-metrics-storm-sink-with-common-2.0.0.151.jar
  • 在所有 Storm Supervisor 节点上运行“yum reinstall ambari-metrics-hadoop-sink”
  • 重启supervisor并重新部署topology
  • 检查“/usr/lib/storm/lib”以确保匹配的 ambari 版本 jar 存在

Hortonworks 发布了一篇关于这个问题的知识库文章:https ://community.hortonworks.com/content/supportkb/49117/storm-worker-fails-with-javalangclassnotfoundexcep.html

就我而言,我需要安装(而不是重新安装)ambari-metrics-hadoop-sink,因为默认情况下它没有安装在 HDP 沙箱上。

于 2019-05-08T03:31:07.053 回答