Hi,
Has anyone met the problem that gobblin guava jar version conflicts with hadoop library guava dependencies? The exception is as follows:
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:134)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:747)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:132)
... 7 more
Caused by: java.lang.NoSuchMethodError: com.google.common.collect.Sets.newConcurrentHashSet()Ljava/util/Set;
at gobblin.configuration.SourceState.<clinit>(SourceState.java:54)
at gobblin.runtime.mapreduce.MRJobLauncher$TaskRunner.<init>(MRJobLauncher.java:551)
... 12 more
I'm using HDP 2.3.2.0-2950 which uses hadoop 2.7.1, and it seems to use guava-11.0 while gobblin uses guava-18.0. I find in gobblin-mapreduce.sh, it actually sets
export HADOOP_USER_CLASSPATH_FIRST=true
export HADOOP_CLASSPATH=$GOBBLIN_DEP_JARS:$HADOOP_CLASSPATH
also:
-D mapreduce.user.classpath.first=true \
-D mapreduce.job.user.classpath.first=true \
-libjars $LIBJARS \
and I'm running gobblin like this:
./bin/gobblin-mapreduce.sh start --jars ./lib/kafka-gobblin-hdfs-test.jar,./lib/* --conf ./job_config_dir/*.job
So, why would it still gives the above exception? Could anyone give some tips on what is wrong?
Thanks,
Zhiying