Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
0.21.0
Description
If NameNode is unable to find plugins (specified in dfs.namenode.plugins), it terminates abruptly with the following stack trace:
Failed to start namenode.
java.lang.RuntimeException: java.lang.ClassNotFoundException: Class XXX not found
at org.apache.hadoop.conf.Configuration.getClasses(Configuration.java:2178)
at org.apache.hadoop.conf.Configuration.getInstances(Configuration.java:2250)
at org.apache.hadoop.hdfs.server.namenode.NameNode.startCommonServices(NameNode.java:713)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:691)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:843)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:822)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1543)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1611)
We should catch this exception, log a warning message and let it proceed, as missing the third party library does not affect the functionality of NameNode. We caught this bug during a CDH upgrade where a third party plugin was not in the lib directory of the newer version of CDH.