Build systems just download and run random code from the internet without verifying that its the correct code, from the correct source.
Its a ticking time bomb.
Now, some dependencies are fraudolent (especially true in the Javascript world because it eventually targets a lot of user browsers), but nobody ever checked the sources anyway...
If the answer is: use TLS, there is no point in having the file hash at all.
This is how package managers work. TLS doesn't replace those.
Think of a self-hosting programming language: you can't build it without a running installation of a previous version. (Anyone remembering "On Trusting Trust" at this point?) Or any application in an image-based language like Smalltalk. Development becomes path-dependent. It's inevitable to get into a situation where A and B cannot be made to work together, except in a derivative of a version that someone, somewhere made while holding their mouth the right way.
Pre-built containers and VMs are an admission that path-dependence is the way stuff is supposed to be.
A) work through building it yourself, or
B) get a container that claims to have a running Hadoop and hope it works for you?
If B wasn't on the table, what would happen?
You'll notice that the Debian Wiki users have given up on building it since 2010. That was three years before Docker even appeared. Almost nobody was using containers back then.
Containers are totally unnecessary here, just as they are for most java apps.
That's the whole problem with the article. It takes a problem (building Hadoop was bad), correlates it to a completely different tool (because we have docker, hadoop build scripts are bad), and goes on to rant about everything else.