Ambari风暴下沉问题

时间:2015-08-14 05:52:53

标签: apache-storm ambari

当我的风暴拓扑从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

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

1 个答案:

答案 0 :(得分:0)

  • 检查通过“ rpm -qa | grep ambari”安装的Ambari的版本,并检查所有主机的“ / usr / lib / storm / lib”以查找与该版本匹配的ambari指标jars
  • 示例:ambari-metrics-storm-sink-with-common-2.0.0.151.jar
  • 在所有风暴管理器节点上运行“ yum reinstall ambari-metrics-hadoop-sink”
  • 重新启动主管并重新部署拓扑
  • 检查“ / 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沙箱上。