据GigaOM消息,Google上周宣布,将自己用C++开发的MapReduce框架MapReduce for C(MR4C)开源,此举可给Hadoop社区带来福音,因为这样用户就可以在自己的Hadoop环境中运行原生的C及C++代码了。
Hadoop是许多大数据应用的基础,它是由Apache基金会所开发的分布式系统基础架构,主要由分布式文件系统HDFS和计算框架MapReduce组成。由于原先的MapReduce是用Java编写的,与C++相比,在性能上要略逊一筹,因此,许多处理大规模数据集的软件公司都开发了自己的专有系统来在MapReduce框架之内执行其原生代码。Facebook的HipHop(将PHP转换为C++)以及MemSQL执行前将SQL转为C++代码也都是出于同样的性能考虑。
MR4C原先由卫星影像公司Skybox Imaging开发,目的是为了优化其地理空间数据及计算机视觉代码库。MR4C围绕着几个简单概念开发而成,其目标是将MapReduce的重要细节抽象化,允许用户专注于开发有价值的算法。去年6月,Google收购了Skybox。半年之后的现在,又将MR4C开源出来。这对于没有能力开发专有系统或者对Java不感冒的开发者来说无疑是一个福音。
当然,MR4C的受欢迎程度仍有待观察。因为在数据处理方面,Apache Spark是一个速度比Mapreduce更快的框架,它支持Scala、Python和Java(但不支持C/C++),已经引起了开发社区极大的兴趣。