Skip to content

Bump Apache Avro to 1.9.0#7772

Merged
clintropolis merged 2 commits intoapache:masterfrom
Fokko:fd-bump-avro
Jun 19, 2019
Merged

Bump Apache Avro to 1.9.0#7772
clintropolis merged 2 commits intoapache:masterfrom
Fokko:fd-bump-avro

Conversation

@Fokko
Copy link
Copy Markdown
Contributor

@Fokko Fokko commented May 27, 2019

Apache Avro 1.9.0 brings a lot of new features:

  • Deprecate Joda-Time in favor of Java8 JSR310 and setting it as default
  • Remove support for Hadoop 1.x
  • Move from Jackson 1.x to 2.9
  • Add ZStandard Codec
  • Lots of updates on the dependencies to fix CVE's
  • Remove Jackson classes from public API
  • Apache Avro is built by default with Java 8
  • Apache Avro is compiled and tested with Java 11 to guarantee compatibility
  • Apache Avro MapReduce is compiled and tested with Hadoop 3
  • Apache Avro is now leaner, multiple dependencies were removed: guava, paranamer, commons-codec, and commons-logging
  • and many, many more!

@Fokko
Copy link
Copy Markdown
Contributor Author

Fokko commented May 27, 2019

It seems to clash with Apache Pig which still uses Avro 1.7.4.

@gianm
Copy link
Copy Markdown
Contributor

gianm commented May 27, 2019

Would it be possible to update Pig too?

@Fokko
Copy link
Copy Markdown
Contributor Author

Fokko commented May 28, 2019

Good point. I'm looking into this. Pig is very old and even the latest version uses Avro 1.7.5.

Apache Avro 1.9.0 brings a lot of new features:
* Deprecate Joda-Time in favor of Java8 JSR310 and setting it as default
* Remove support for Hadoop 1.x
* Move from Jackson 1.x to 2.9
* Add ZStandard Codec
* Lots of updates on the dependencies to fix CVE's
* Remove Jackson classes from public API
* Apache Avro is built by default with Java 8
* Apache Avro is compiled and tested with Java 11 to guarantee compatibility
* Apache Avro MapReduce is compiled and tested with Hadoop 3
* Apache Avro is now leaner, multiple dependencies were removed: guava, paranamer, commons-codec, and commons-logging
* Introduce JMH Performance Testing Framework
* Add Snappy support for C++ DataFile
* and many, many more!
@Fokko
Copy link
Copy Markdown
Contributor Author

Fokko commented Jun 15, 2019

Rebased onto master

<exclusion>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
</exclusion>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I noticed that instead of these, avro-mapred version 1.9.0 includes com.fasterxml.jackson.core version 2.9.8, will that cause any problems?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, it moved from Jackson 1.x org.codehaus.jackson to 2.x com.fasterxml.jackson. If this is a problem, it depends. I think for Druid itself it will pan out, but in combination with different Hadoop versions, as always, there might be issues.

I also have a PR to bump Druid to the same version: #7701. As you can see there are no breaking API changes, so I don't expect a lot of issues.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I'm fine with excluding the com.fasterxml.jackson from Apache Avro if you prefer that.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Excluding here I think would be best if everything still works.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Excluding is the safest path, I've added the exclusions 👍

Copy link
Copy Markdown
Member

@clintropolis clintropolis left a comment

Choose a reason for hiding this comment

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

lgtm, thanks! 👍

@clintropolis clintropolis merged commit 0a6fbbb into apache:master Jun 19, 2019
@jihoonson
Copy link
Copy Markdown
Contributor

Since the version of Avro was changed, the LICENSE.BINARY file should have updated in this PR accordingly. This will be automatically checked after #7998.

@clintropolis clintropolis added this to the 0.16.0 milestone Aug 8, 2019
jihoonson pushed a commit to implydata/druid-public that referenced this pull request Aug 23, 2019
* Bump Apache Avro to 1.9.0

Apache Avro 1.9.0 brings a lot of new features:
* Deprecate Joda-Time in favor of Java8 JSR310 and setting it as default
* Remove support for Hadoop 1.x
* Move from Jackson 1.x to 2.9
* Add ZStandard Codec
* Lots of updates on the dependencies to fix CVE's
* Remove Jackson classes from public API
* Apache Avro is built by default with Java 8
* Apache Avro is compiled and tested with Java 11 to guarantee compatibility
* Apache Avro MapReduce is compiled and tested with Hadoop 3
* Apache Avro is now leaner, multiple dependencies were removed: guava, paranamer, commons-codec, and commons-logging
* Introduce JMH Performance Testing Framework
* Add Snappy support for C++ DataFile
* and many, many more!

* Add exclusions for Jackson
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants