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

简介:

据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++代码也都是出于同样的性能考虑。
screenshot

MR4C原先由卫星影像公司Skybox Imaging开发,目的是为了优化其地理空间数据及计算机视觉代码库。MR4C围绕着几个简单概念开发而成,其目标是将MapReduce的重要细节抽 象化,允许用户专注于开发有价值的算法。去年6月,Google收购了Skybox。半年之后的现在,又将MR4C开源出来。这对于没有能力开发专有系统 或者对Java不感冒的开发者来说无疑是一个福音。

当然,MR4C的受欢迎程度仍有待观察。因为在数据处理方面,Apache Spark是一个速度比Mapreduce更快的框架,它支持Scala、Python和Java(但不支持C/C++),已经引起了开发社区极大的兴趣。

文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
1天前
|
人工智能 前端开发 API
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
Gemini Coder 是一款基于 Google Gemini API 的 AI 应用生成工具,支持通过文本描述快速生成代码,并提供实时代码编辑和预览功能,简化开发流程。
53 38
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
WK
|
2月前
|
开发框架 开发工具 C++
C++跨平台框架Qt
Qt是一个功能强大的C++跨平台应用程序开发框架,支持Windows、macOS、Linux、Android和iOS等操作系统。它提供了250多个C++类,涵盖GUI设计、数据库操作、网络编程等功能。Qt的核心特点是跨平台性、丰富的类库、信号与槽机制,以及良好的文档和社区支持。Qt Creator是其官方IDE,提供了一整套开发工具,方便创建、编译、调试和运行应用程序。Qt适用于桌面、嵌入式和移动应用开发。
WK
82 5
|
7月前
|
机器学习/深度学习 人工智能 TensorFlow
TensorFlow 是一个由 Google 开发的开源深度学习框架
TensorFlow 是一个由 Google 开发的开源深度学习框架
95 3
|
7月前
|
算法 Linux C++
C++框架设计中实现可扩展性的方法
在软件开发中,可扩展性至关重要,尤其对于C++这样的静态类型语言。本文探讨了在C++框架设计中实现可扩展性的方法:1) 模块化设计降低耦合;2) 使用继承和接口实现功能扩展;3) 通过插件机制动态添加功能;4) 利用模板和泛型提升代码复用;5) 遵循设计原则和最佳实践;6) 应用配置和策略模式以改变运行时行为;7) 使用工厂和抽象工厂模式创建可扩展的对象;8) 实现依赖注入增强灵活性。这些策略有助于构建适应变化、易于维护的C++框架。
532 2
WK
|
2月前
|
C++ 开发者 iOS开发
C++跨平台框架
C++跨平台框架使开发者能够编写一次代码,在多个操作系统和硬件平台上运行,提高开发效率和软件可扩展性。常见的框架包括Qt、wxWidgets、SDL、JUCE等,它们各自具有丰富的功能和特点,适用于不同的应用场景。选择框架时需考虑目标平台、功能需求、学习曲线和社区支持等因素。
WK
77 0
|
4月前
|
JavaScript 前端开发 测试技术
一个google Test文件C++语言案例
这篇文章我们来介绍一下真正的C++语言如何用GTest来实现单元测试。
30 0
|
4月前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
85 0
|
5月前
|
数据安全/隐私保护 C++ 开发者
C++框架设计秘籍:解锁可扩展性的神奇密码,让你的代码无所不能!
【8月更文挑战第5天】在C++框架设计中,实现可扩展性至关重要以适应需求变化和新功能的加入。主要策略包括:使用接口与抽象类提供统一访问并允许多种实现;采用依赖注入分离对象创建与依赖管理;运用模板和泛型编程实现代码通用性;设计插件机制允许第三方扩展;以及利用配置文件和动态加载支持灵活的功能启用与模块加载。遵循这些实践能构建出更灵活、可维护及可扩展的框架。
60 1
|
5月前
|
缓存 分布式计算 Java
详细解读MapReduce框架中的分布式缓存
【8月更文挑战第31天】
67 0
|
5月前
|
机器学习/深度学习 数据采集 物联网
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
185 0