Details
-
Type:
Bug
-
Status: Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: CDH 5.4.8
-
Fix Version/s: None
-
Component/s: HBase
-
Labels:None
Description
jruby-cloudera-1.0.0.jar (an uber jar) is on the hbase regionserver classpath. I think it should only be on the classpath of hbase shell.
Reading the pom.xml files of hbase (even the patched version for CDH 5.4.8) confirms that jruby-cloudera is only used in the hbase-shell module. I don't see any reason why it should be on the classpath of the regionserver. Removing it (with a temporary patch) works as expected.
This is a problem because jruby-cloudera is an uber jar which contains all sorts of "invisible" dependencies which results in difficult to debug classpath issues.
We specifically ran into an issue with a custom coprocessor which depends on joda-time 2.7 while the jruby-cloudera uber jar contains an older joda-time version.
Fyi, this is how I temporaly patched my CDH 5.4.8 installation.
/opt/cloudera/parcels/CDH-5.4.8-1.cdh5.4.8.p0.4/lib/hbase/bin:
... elif [ "$COMMAND" = "regionserver" ] ; then CLASSPATH=`echo $CLASSPATH | sed 's/jruby-cloudera-1.0.0.jar//g'` CLASS='org.apache.hadoop.hbase.regionserver.HRegionServer' if [ "$1" != "stop" ] ; then HBASE_OPTS="$HBASE_OPTS $HBASE_REGIONSERVER_OPTS" fi ...
Attachments
Issue Links
- links to