Every time I start up the Hive CLI with logging enabled I'm treated to the following ERROR log messages courtesy of DataNucleus:
Here's where this comes from:
- The bin/hive scripts cause Hive to inherit Hadoop's classpath.
- Hadoop's classpath includes $HADOOP_HOME/lib/core-3.1.1.jar, an Eclipse library.
- core-3.1.1.jar includes a plugin.xml file defining an OSGI plugin
- At startup, Datanucleus scans the classpath looking for OSGI plugins, and will attempt to initialize any that it finds, including the Eclipse OSGI plugins located in core-3.1.1.jar
- Initialization of the OSGI plugin in core-3.1.1.jar fails because of unresolved dependencies.
- We see an ERROR message telling us that Datanucleus failed to initialize a plugin that we don't care about in the first place.
I can think of two options for solving this problem:
- Rewrite the scripts in $HIVE_HOME/bin so that they don't inherit ALL of Hadoop's CLASSPATH.
- Replace DataNucleus's NOnManagedPluginRegistry with our own implementation that does nothing.