FlumeJava']Java: Easy, Efficient Data-Parallel Pipelines

被引:79
作者
Chambers, Craig [1 ]
Raniwala, Ashish [1 ]
Perry, Frances [1 ]
Adams, Stephen [1 ]
Henry, Robert R. [1 ]
Bradshaw, Robert [1 ]
Weizenbaum, Nathan [1 ]
机构
[1] Google Inc, Mountain View, CA 94043 USA
关键词
Algorithms; Languages; Performance; data-parallel programming; MapReduce; !text type='Java']Java[!/text;
D O I
10.1145/1809028.1806638
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
MapReduce and similar systems significantly ease the task of writing data-parallel code. However, many real-world computations require a pipeline of MapReduces, and programming and managing such pipelines can be difficult. We present FlumeJava, a Java library that makes it easy to develop, test, and run efficient data-parallel pipelines. At the core of the FlumeJava library are a couple of classes that represent immutable parallel collections, each supporting a modest number of operations for processing them in parallel. Parallel collections and their operations present a simple, high-level, uniform abstraction over different data representations and execution strategies. To enable parallel operations to run efficiently, FlumeJava defers their evaluation, instead internally constructing an execution plan dataflow graph. When the final results of the parallel operations are eventually needed, FlumeJava first optimizes the execution plan, and then executes the optimized operations on appropriate underlying primitives (e. g., MapReduces). The combination of high-level abstractions for parallel data and computation, deferred evaluation and optimization, and efficient parallel primitives yields an easy-to-use system that approaches the efficiency of hand-optimized pipelines. FlumeJava is in active use by hundreds of pipeline developers within Google.
引用
收藏
页码:363 / 375
页数:13
相关论文
共 18 条
[1]  
[Anonymous], SCI PROGRAMMING
[2]  
[Anonymous], 2008, COMMUNICATIONS ACM
[3]  
[Anonymous], PIG
[4]  
CHAIKEN R, 2008, P VLDB END PVLDB, V1
[5]  
Chang F., 2006, USENIX S OP SYST DES
[6]  
Dean J., 2004, USENIX S OP SYST DES
[7]  
DEAN J, 2006, PARALLEL ARCHITECTUR
[8]  
Ghemawat S., 2003, ACM S OP SYST PRINC
[9]  
HALSTEAD RH, 1989, WORKSH PAR LISP
[10]  
Isard M., 2007, EUROSYS