<p>Each job is independent of each other, so without storing the output in intermediate location it's not possible to share the data across jobs.</p>

<p>FYI, in MapReduce model the map tasks don't talk to each other. Same is the case for reduce tasks also. <a href="http://incubator.apache.org/giraph/" rel="nofollow">Apache Giraph</a> which runs on Hadoop uses communication between the mappers in the same job for iterative algorithms which requires the same job to be run again and again without communication between the mappers.</p>

<p>Not sure about the algorithm being implemented and why MR, but every MR algorithm can be implemented in <a href="http://en.wikipedia.org/wiki/Bulk_synchronous_parallel" rel="nofollow">BSP</a> also. Here is a <a href="http://arxiv.org/abs/1203.2081" rel="nofollow">paper</a> comparing BSP with MR. Some of the algorithms perform well in BSP when compared to MR. <a href="http://hama.apache.org/" rel="nofollow">Apache Hama</a> is an implementation of the BSP model, the way Apache Hadoop is an implementation of MR.</p>
Data sharing in Hadoop Map Reduce chaining
<p>Is it possible to share a value between successive reducer and mapper?</p>

<p>Or is it possible to store the output of first reducer into memory and second mapper can access that from memory ?</p>

<p>Problem is ,
I had written a chain map reducer like Map1 -> Reducer1 --> Map2 --> Reducer2.</p>

<p>Map1 and Map2 is reading the same input file.</p>

<p>Reduce1 is deriving a value suppose 'X' as its output.</p>

<p>I need 'X' and input file for Map2.</p>

<p>How can we do this without reading the output file of Reduce1?</p>

<p>Is it possible store 'X' in memory to access for Mapper 2 ?</p>