Hey Clint, I think it's definitely a step in the right direction. One thing I would suggest, since the are several deployments using Hadoop (either for deep storage and/or for ingestion), is to let the wider community know in advance that Hadoop 2.x support is going to be dropped in favor of 3.x (so they have time to adjust their deployments accordingly). If that sort of community-wide notification has already been done and I missed it, please let me know.
Thanks! Itai On Tue, Jun 8, 2021 at 11:08 AM Clint Wylie <cwy...@apache.org> wrote: > Hi all, > > I've been assisting with some experiments to see how we might want to > migrate Druid to support Hadoop 3.x, and more importantly, see if maybe we > can finally be free of some of the dependency issues it has been causing > for as long as I can remember working with Druid. > > Hadoop 3 introduced shaded client jars, > https://issues.apache.org/jira/browse/HADOOP-11804, with the purpose to > allow applications to talk to the Hadoop cluster without drowning in its > transitive dependencies. The experimental branch that I have been helping > with, which is using these new shaded client jars, can be seen in this PR > https://github.com/apache/druid/pull/11314, and is currently working with > the HDFS integration tests as well as the Hadoop tutorial flow in the Druid > docs (which is pretty much equivalent to the HDFS integration test). > > The cloud deep storages still need some further testing and some minor > cleanup still needs done for the docs and such. Additionally we still need > to figure out how to handle the Kerberos extension, because it extends some > Hadoop classes so isn't able to use the shaded client jars in a > straight-forward manner, and so still has heavy dependencies and hasn't > been tested. However, the experiment has started to pan out enough to where > I think it is worth starting this discussion, because it does have some > implications. > > Making this change I think will allow us to update our dependencies with a > lot more freedom (I'm looking at you, Guava), but the catch is that once we > make this change and start updating these dependencies, it will become > hard, nearing impossible to support Hadoop 2.x, since as far as I know > there isn't an equivalent set of shaded client jars. I am also not certain > how far back the Hadoop job classpath isolation stuff goes > (mapreduce.job.classloader = true) which I think is required to be set on > Druid tasks for this shaded stuff to work alongside updated Druid > dependencies. > > Is anyone opposed to or worried about dropping Hadoop 2.x support after the > Druid 0.22 release? >