Java 8 MapReduce for distributed computing Java 8 MapReduce for distributed computing hadoop hadoop

Java 8 MapReduce for distributed computing


Here is the list of features scheduled for Java 8 as of September 2013.

As you can see, there is no feature dedicated to standardizing distributed computing over a cluster. The closest you have is JEP 107, which builds on the Fork/Join framework in JDK 7 to leverage multi-core CPU's. In Java 8, you will be able to use lambda expressions to perform bulk operations on collections in parallel by dividing the task among multiple processors.

Java 8 is also scheduled to feature JEP 103, which will also build on Java 7 Fork/Join to sort arrays in parallel. Meanwhile, since Fork/Join is clearly a big deal, it evolves further with JEP 155.

So there are no core Java 8 abstractions for distributed computing over a cluster--only over multiple cores. You will need to devise your own solution for real distributed computing using existing facilities.

As disappointing as that may be, I would point out that there are still wonderful open-source third party abstractions over Hadoop out there like Cascalog and Apache Spark. Spark in particular lets you perform operations on your data in a distributed way through the RDD abstraction, which makes it feel like your data is just in a fancy array.

But you will have to wait for such things in core Java.


There is nothing in the documentations/specs that shows that there will be such a feature. But if we think for a moment RMI is the Java solution for distribution and it is pretty straightforward, you could use it as the base for distribution and on the nodes use the core parallelism as you shown.


Don't expect such a feature in the core language, as it requires some kind of server to run and manage the different processes. historically, I don't know of similar solutions that were part of java core.

There are however, some solutions that are similar to what you want.One of them is cascading http://www.cascading.org/ , which is a functional style infrastructure to write map reduce programs.meaning - the actual code if relatively lightweight (unlike traditional map reduce programs) but it does require maintaining an hadoop infrastructure.