Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Downgrade Guava to version 15.0 to work with Hadoop 2.6.0 #280

Merged
merged 2 commits into from
Aug 12, 2015

Conversation

liyinan926
Copy link
Contributor

Due to the issue reported in HADOOP-10961, Hadoop 2.6.0 does not work with Guava version 16.0 or after because the deprecation of a constructor of Stopwatch. To make sure Gobblin supports Hadoop 2.6.0, we need to downgrade Guava to version 15.0.

Signed-off-by: Yinan Li liyinan926@gmail.com

Due to the issue reported in HADOOP-10961, Hadoop 2.6.0 does not work with Guava version 16.0 or after because the deprecation of a constructor of Stopwatch. To make sure Gobblin supports Hadoop 2.6.0, we need to downgrade Guava to version 15.0.

Signed-off-by: Yinan Li <liyinan926@gmail.com>
@liyinan926
Copy link
Contributor Author

@chavdar can you review?

@@ -27,7 +27,7 @@

public class AvroFsHelperTest {

@Test(expectedExceptions = IllegalArgumentException.class)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why ignoring the test?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For some reason, Hadoop 2.6.0 seems not recognizing the s3 scheme.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What exception does it throw? Is it possible to add this to expectedExceptions instead of disabling the test?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caused by: java.io.IOException: No FileSystem for scheme: s3
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
    at gobblin.source.extractor.hadoop.AvroFsHelper.createFileSystem(AvroFsHelper.java:77)
    at gobblin.source.extractor.hadoop.AvroFsHelper.connect(AvroFsHelper.java:85)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Turns out the reason for this is: "For some reason, the jar hadoop-aws.jar which contains the implementation to NativeS3FileSystem is not present in the classpath of hadoop by default in the version 2.6". Fixed this by adding a dependency on hadoop-aws.

…tials

Signed-off-by: Yinan Li <liyinan926@gmail.com>
@liyinan926
Copy link
Contributor Author

Updated.

@chavdar
Copy link
Contributor

chavdar commented Aug 12, 2015

LGTM

liyinan926 added a commit that referenced this pull request Aug 12, 2015
Downgrade Guava to version 15.0 to work with Hadoop 2.6.0
@liyinan926 liyinan926 merged commit 51d2e7c into apache:master Aug 12, 2015
@mark1900
Copy link

Just a quick comment. Not sure if it is related though it would seem that gobblin/bin/gobblin-mapreduce.sh still requires guava-18.0.jar.

# Jars Gobblin runtime depends on
LIBJARS=$USER_JARS$separator$FWDIR_LIB/gobblin-metastore.jar,$FWDIR_LIB/gobblin-metrics.jar,\
$FWDIR_LIB/gobblin-core.jar,$FWDIR_LIB/gobblin-api.jar,$FWDIR_LIB/gobblin-utility.jar,\
$FWDIR_LIB/guava-18.0.jar,$FWDIR_LIB/avro-1.7.7.jar,$FWDIR_LIB/metrics-core-3.1.0.jar,\
$FWDIR_LIB/gson-2.3.1.jar,$FWDIR_LIB/joda-time-2.8.1.jar,$FWDIR_LIB/data-1.15.9.jar

@henryon
Copy link

henryon commented Sep 11, 2015

@liyinan926 passed on another box, the original box ,which running ambari master who's port is 8080. Thanks every !

@sahilTakiar
Copy link
Contributor

@mark1900 that does indeed look like a bug.

@liyinan926 is it possible to build LIBJARS in a similar fashion as GOBBLIN_DEP_JARS. The point being we probably shouldn't need to update gobblin-mapreduce.sh every time a dependency changes. Can we just use whatever is under FWDIR_LIB?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants