ShmStreaming: A Shared Memory Approach for Improving Hadoop Streaming Performance
ShmStreaming: A Shared Memory Approach for Improving Hadoop Streaming Performance
复制标题
ShmStreaming:一种提高 Hadoop 流性能的共享内存方法
DOI:
10.1109/aina.2013.90
复制
发表时间:
2013
期刊:
影响因子:
--
通讯作者:
F. Tang and M. Guo
中科院分区:
文献类型:
--
作者:
L. Lai;J. Zhou;L. Zheng. H. Li;Y. Lu;F. Tang and M. Guo
The Map-Reduce programming model is now drawing both academic and industrial attentions for processing large data. Hadoop, one of the most popular implementations of the model, has been widely adopted. To support application programs written in languages other than Java, Hadoop introduces a streaming mechanism that allows it to communicate with external programs through pipes. Because of the added overhead associated with pipes and context switches, the performance of Hadoop streaming is significantly worse than native Hadoop jobs. We propose ShmStreaming, a mechanism that takes advantages of shared memory to realize Hadoop streaming for better performance. Specifically, ShmStreaming uses shared memory to implement a lockless FIFO queue that connects Hadoop and external programs. To further reduce the number of context switches, the FIFO queue adopts a batching technique to allow multiple key-value pairs to be processed together. For typical benchmarks of word count, grep and inverted index, experimental results show 20-30% performance improvement comparing to the native Hadoop streaming implementation.