Apache storm 安巴里风暴下沉问题

Apache storm 安巴里风暴下沉问题,apache-storm,ambari,Apache Storm,Ambari,当我的风暴拓扑从卡夫卡那里得到第一条信息,工人死亡时,我发现下面的错误 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 u

当我的风暴拓扑从卡夫卡那里得到第一条信息,工人死亡时,我发现下面的错误

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
有人能帮我解决这个问题吗。

  • 检查安装了“rpm-qa | grep Ambari”的Ambari版本,并检查所有主机的“/usr/lib/storm/lib”,以查找与该版本匹配的Ambari metrics jar
  • 示例:ambari-metrics-storm-sink-with-common-2.0.0.151.jar
  • 在所有storm supervisor节点上运行“yum重新安装ambari metrics hadoop sink”
  • 重新启动监控器并重新部署拓扑
  • 选中“/usr/lib/storm/lib”以确保存在匹配的ambari版本jar
Hortonworks发布了一篇知识库文章,内容正是关于这个问题:


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

您的jar文件是否包含丢失的文件?你是如何组装你的jar的?不,我没有看到这个特殊类的jar文件。Ambari HDP安装假定在/storm/lib目录下添加Ambari-metrics-storm-sink.jar。但出于某种原因,我没有看到这个罐子。我怎样才能得到这个jar文件?你试着从central maven repository网页下载了吗?是的,我试过了,但没有成功。你可以编译你的拓扑,对吗?所以文件在你的电脑上。因此,要么该文件包含在本地jar中(可能具有不同的名称),要么您需要将该文件包含在提交给Storm的jar中。