Support Questions
Find answers, ask questions, and share your expertise

storm ambari-metrics-storm-sink not correctly installed (missing symlink)

storm ambari-metrics-storm-sink not correctly installed (missing symlink)



I did recently an upgrade from HDP 2.2 to HDP 2.6. Storm has received a major upgrade. And it looks like as there are some thinks which haven't been migrated correctly.

When I start a a storm topology I always get an error like this :

Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.metrics2.sink.storm.StormTimelineMetricsSink
        at$ ~[?:1.7.0_111]
        at$ ~[?:1.7.0_111]
        at Method) ~[?:1.7.0_111]
        at ~[?:1.7.0_111]
        at java.lang.ClassLoader.loadClass( ~[?:1.7.0_111]
        at sun.misc.Launcher$AppClassLoader.loadClass( ~[?:1.7.0_111]
        at java.lang.ClassLoader.loadClass( ~[?:1.7.0_111]
        at java.lang.Class.forName0(Native Method) ~[?:1.7.0_111]
        at java.lang.Class.forName( ~[?:1.7.0_111]
        at org.apache.storm.metric.MetricsConsumerBolt.prepare( ~[storm-core-]

As you can see the topology does not find the class from one of the following jars :


But : The jars are not included in the classpath, And : As described in this article, the symlike does not exist. Who should create the symlink ?

/usr/hdp/current/storm-client/lib/ambari-metrics-storm-sink-with-common- -> /usr/lib/storm/lib/ambari-metrics-storm-sink-with-common-

Does anyone have an idea how I get this this running ? I can just recreate the symlink, but it looks like that there are some thinks missing.

Or : Should I remove the lines from the storm config used for the metrics system ?

Thanks in advance

Kind regards

Manfred PAUL


Re: storm ambari-metrics-storm-sink not correctly installed (missing symlink)

Super Mentor

@Manfred PAUL

Looks like during the upgrade some how the symlink creation got skipped or failed.

But if you will create the link manually then it should work fine as Ambari Metrics collector looks for that symlink as following:

# ls -l /usr/hdp/current/storm-client/lib/ambari-metrics-storm-sink.jar
/usr/hdp/current/storm-client/lib/ambari-metrics-storm-sink.jar -> /usr/lib/storm/lib/ambari-metrics-storm-sink-with-common-

# ls -l /usr/lib/storm/lib/ambari-metrics-storm-sink-with-common-


So creating the symlink as following should be OK

# ln -s /usr/lib/storm/lib/ambari-metrics-storm-sink-with-common- /usr/hdp/current/storm-client/lib/ambari-metrics-storm-sink.jar