-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
Version conflict with Guava dependency #756
Comments
@EronWright Is there any way we can avoid conflicting with spark and co + this guava dep? The work around here is to use dependencyManagement and exclusions. We need to be able to use the distributed version for the UI so different exclusions per dep here won't work? Unless we set something up for hadoop jobs vs normal? |
The standard solution is to shade the dependency. I think guava is amenable. Caveat though, shaded types mustn't be a part of the public api...hopefully they aren't. Assign the issue to me if you'd like me to work on it. |
So one other thing here then: Is there any way to kill 2 birds with 1 stone and keep guava upgraded but deploy the older version for hadoop/spark? |
My proposal is that dl4j would have a shaded, upgraded guava while Hadoop would have whatever guava it cared to. It is unproven as of yet but is the idea. Does that kill both birds? |
I see a few instances where Guava types are used by the DL4J public API. That's a problem because the shaded classes are supposed to be hidden.
I will rework those classes as necessary, if @agibsonccc approves making breaking changes. |
Yup that will be great
|
Follow-up, I see that nd4j also uses Guava on its public API, especially Function. Maybe we should revisit the reason for downgrading Guava in the first place. Following up on #713 then will update this issue. |
FWIW, u can see how Flink is shading out the Guava jar from hadoop and not having to downgrade to Guava 11.0
|
Oh that's helpful! I think we can do something with this. |
Update: if possible I'd like to avoid shading Guava, since its types are present on both the nd4j and dl4j public API. We know that dl4j works with Guava 11 and with Guava 18. Guava tends to be backwards compatible, for those types not marked The issue is dropwizard. It definitely needs a new-ish Guava. Maybe we can shade dropwizard and its dependencies to be safely embeddable in all situations. I observe that dropwizard is used by dl4j-nlp (a core library), so we need dropwizard to be embeddable. To elaborate on @smarthi's comment, Flink has a dependency on Hadoop. It uses a fatjar of Hadoop with a shaded Guava. My plan for dropwizard is essentially like that. To be continued. |
#58 closed and this doesn't appear to be an issue at this time. |
* embedding_lookup operation from TF port. Initial commit * dynamic_parittion operation and test. Initial commit * Added more tests for dynamic_partition op * Fixed test for dynamic_partition op. * Added additional test for embedding_lookup * dynamic_stitch operation and test. Initial commit * Fixed dynamic_stitch op and test suite for it.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Running a network with a Histogram iteration listener currently results in the exception shown below.
This is likely due to a Guava version issue (which was downgraded for Hadoop: #718)
The text was updated successfully, but these errors were encountered: