Google开源C/C++版MapReduce框架

2015-02-24 12:01


据 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++),已经引起了开发社区极大的兴趣。