百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

如何为Hadoop选择最佳弹性MapReduce框架

ccwgpt 2025-05-22 09:40 34 浏览 0 评论

ZDNet至顶网服务器频道 07月22日 新闻消息:亚马逊Web服务的弹性MapReduce是一项基于Hadoop的实施,它可允许你运行大型的预处理工作,如格式转换和数据聚合等。虽然我们可以选择很多的编程语言来对这些任务进行编码,但是时间紧张的开发人员更需要一个能够最大限度减少编码开销的编程框架。 Mrjob、 Dumbo 以及 PyDoop 是三个基于Python可满足以上需求的弹性MapReduce框架。

那么,为什么诸如Java或Apache Pig之类的流行编程语言无法胜任这项任务呢?亚马逊的弹性MapReduce(EMR)任务一般都是采用Java语言编写的,但即便是简单的应用程序也可能需要比用Python开发的脚本程序更多的代码行。 Pig 是一种专为载入和转换数据的应用而设计的高级数据处理语言,但是这并不是一种通用的编程语言。

如果开发人员一方面比较喜欢使用比Java更高级的编程语言,一方面又需要使用比Pig数据管理更多的功能,那么他们应当尝试使用下Python。 目前,有三种基于Python的EMR框架可供选择: Mrjob、Dumbo 以及 PyDoop。

mrjob开源开发包

Mrjob是一种可在亚马逊EMR上或在你的本地机器上运行任务的开源包。 弹性MapReduce任务是在单个Python类中定义的,而其中包含了与mappers、reducers以及combiners相关的方法。

Hadoop的大部分较低层次详细信息都隐藏在mrjob抽象操作下,这是有好处的。 这个简化的模式可允许开发人员把主要精力关注在map-reduce功能的逻辑设计上。 但是,这却意味着你将受制于Hadoop API的一个子集。 如果你需要访问更多的Hadoop API,那么Dumbo 或 PyDoop可能是一个更好的选择。

使用mrjob的一个重要优点就是,它不需要安装Hadoop。 开发人员可以在一台单一设备上使用Python、mrjob以及其他来编写、测试和调试弹性MapReduce程序。 一旦程序准备就绪,你就可以将其移植至EMR,而相同的代码可在Hadoop集群上正常运行且无需任何修改。 承载5700万评论、每月1.3亿以上游客浏览的社交网络仍然使用着mrjob,因此它可满足众多Hadoop用户的需求。

使用Dumo进行作业处理

Dumbo是另一个支持EMR的Python框架。 与mrjob类似,你可以编写mapper类和reducer类来实施弹性MapReduce任务。 除了在mrjob中的基本功能以外,Dumbo还提供了更多的任务处理选项。 它的一个任务类可允许开发人员定义多组由单一命令运行的map-reduce操作。 当对一个数据集执行多个操作时,这是非常有用的。

Dumbo支持文本和序列文件格式,而通过使用用户指定的Java类,它还支持用户的自定义格式。 在缺点方面,Dumbo的相关文档较少,尤其是与mrjob的技术文档相比。

Dumbo遵循着MapReduce的范式,因此在这个框架下进行核心组件开发与在mrjob和PyDoop中进行开发是类似的。 它还允许你执行partitioners,除了是在本地运行外,它与reducers类似。 它们能够减少map与reduce操作之间数据的传输量。

通过使用Dumbo,开发人员还可以在启动任务时以命令行的方式控制Hadoop参数。 Hadoop默认使用纯文本的文件格式,但是用户可以通过指定一个自定义的RecordReader类来处理其他的格式。 这个类包括了初始化、下一步、关闭以及getProgress等方法。

它还支持Hadoop文件系统API,它连接了一个HDFS安装和读写文件。 此外,API会检索文件、目录以及文件系统中的元数据。 当你需要以较低层次方式访问文件系统时,Dumbo API可以助你一臂之力,因为它有与HDFS API相同的功能集。

使用PyDoop进行研究包访问

需要访问第三方库和软件包的Python开发人员可能需要考虑使用PyDoop。 CRS4跨学科研究中心开发了这个框架并对其进行了维护。 这样做的一个好处就是,你可以对访问流行Python研究包(例如SciPy)进行计数。

尽管mrjob、Dumbo以及PyDoop框架都具有不少的好处,但是它们都会增加运行开销,因此与用Java语言进行开发或者通过Hadoop流相比,你的任务的运行时间有可能会变得更长。 如果确保EMR的低成本是一个关键的考虑因素,那么比较分别用Python流和其他框架开发的MapReduce任务就可以得知运行任务所需的额外时间了。

当你开发一些EMR任务时,Hadoop的Python框架是有用的。 这三个开发框架都可以在弹性MapReduce上正常运行,并能够帮助用户避免不必要的和繁琐的Java开发工作。 当你需要更多地访问Hadoop内部时,可考虑Dumbo或PyDoop。

相关推荐

滨州维修服务部“一区一策”强服务

今年以来,胜利油田地面工程维修中心滨州维修服务部探索实施“一区一策”服务模式,持续拓展新技术应用场景,以优质的服务、先进的技术,助力解决管理区各类维修难题。服务部坚持问题导向,常态化对服务范围内的13...

谷歌A2A协议和MCP协议有什么区别?A2A和MCP的差异是什么?

在人工智能的快速发展中,如何实现AI模型与外部系统的高效协作成为关键问题。谷歌主导的A2A协议(Agent-to-AgentProtocol)和Anthropic公司提出的MCP协议(ModelC...

谷歌大脑用架构搜索发现更好的特征金字塔结构,超越Mask-RCNN等

【新智元导读】谷歌大脑的研究人员发表最新成果,他们采用神经结构搜索发现了一种新的特征金字塔结构NAS-FPN,可实现比MaskR-CNN、FPN、SSD更快更好的目标检测。目前用于目标检测的最先...

一文彻底搞懂谷歌的Agent2Agent(A2A)协议

前段时间,相信大家都被谷歌发布的Agent2Agent开源协议刷屏了,简称A2A。谷歌官方也表示,A2A是在MCP之后的补充,也就是MCP可以强化大模型/Agent的能力,但每个大模型/Agent互为...

谷歌提出创新神经记忆架构,突破Transformer长上下文限制

让AI模型拥有人类的记忆能力一直是学界关注的重要课题。传统的深度学习模型虽然在许多任务上取得了显著成效,但在处理需要长期记忆的任务时往往力不从心。就像人类可以轻松记住数天前看过的文章重点,但目前的...

不懂设计?AI助力,人人都能成为UI设计师!

最近公司UI资源十分紧张,急需要通过AI来解决UI人员不足问题,我在网上发现了几款AI应用非常适合用来进行UI设计。以下是一些目前非常流行且功能强大的工具,它们能够提高UI设计效率,并帮助设计师创造出...

速来!手把手教你用AI完成UI界面设计

晨星技术说晨星技术小课堂第二季谭同学-联想晨星用户体验设计师-【晨星小课堂】讲师通过简单、清晰的语言描述就能够用几十秒自动生成一组可编辑的UI界面,AIGC对于UI设计师而言已经逐步发展成了帮助我们...

「分享」一端录制,多端使用的便捷 UI 自动化测试工具,开源

一、项目介绍Recorder是一款UI录制和回归测试工具,用于录制浏览器页面UI的操作。通过UIRecorder的录制功能,可以在自测的同时,完成测试过程的录制,生成JavaScr...

APP自动化测试系列之Appium介绍及运行原理

在面试APP自动化时,有的面试官可能会问Appium的运行原理,以下介绍Appium运行原理。Appium介绍Appium概念Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序...

【推荐】一个基于 SpringBoot 框架开发的 OA 办公自动化系统

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍oasys是一个基于springboot框架开发的OA办公自动化系统,旨在提高组织的日常运作和管理...

自动化实践之:从UI到接口,Playwright给你全包了!

作者:京东保险宋阳1背景在车险系统中,对接保司的数量众多。每当系统有新功能迭代后,基本上各个保司的报价流程都需要进行回归测试。由于保司数量多,回归测试的场景也会变得重复而繁琐,给测试团队带来了巨大的...

销帮帮CRM移动端UI自动化测试实践:Playwright的落地与应用

实施背景销帮帮自2015年成立以来,移动端UI自动化测试的落地举步维艰,移动端的UI自动化测试一直以来都未取得良好的落地。然而移动互联网时代,怎样落地移动端的UI自动化测试以快速稳定进行移动端的端到端...

编写自动化框架不知道该如何记录日志吗?3个方法打包呈现给你。

目录结构1.loguru介绍1.1什么是日志?程序运行过程中,难免会遇到各种报错。如果这种报错是在本地发现的,你还可以进行debug。但是如果程序已经上线了,你就不能使用debug方式了...

聊聊Python自动化脚本部署服务器全流程(详细)

来源:AirPython作者:星安果1.前言大家好,我是安果!日常编写的Python自动化程序,如果在本地运行稳定后,就可以考虑将它部署到服务器,结合定时任务完全解放双手但是,由于自动化程序与平...

「干货分享」推荐5个可以让你事半功倍的Python自动化脚本

作者:俊欣来源:关于数据分析与可视化相信大家都听说自动化流水线、自动化办公等专业术语,在尽量少的人工干预的情况下,机器就可以根据固定的程序指令来完成任务,大大提高了工作效率。今天小编来为大家介绍几个P...

取消回复欢迎 发表评论: