如何在Amazon Elastic MapReduce(EMR)上运行MapReduce程序

本文详细介绍了如何在Amazon Elastic MapReduce (EMR) 上运行MapReduce程序,包括注册Amazon账号、创建S3 Bucket、打包并测试Hadoop程序、修改程序配置、上传文件及启动jobflow。注意,程序中的文件读取操作需调整为适用于S3的路径,且Amazon上的性能可能不如本地机器。
摘要由CSDN通过智能技术生成

这个问题其实是挺简单的,但是网上真的很不好找教程,尤其对于一些细节,就没人说过。估计大家可能也会一次次试验,我试了好多次终于成功,权当初学者一点帮助吧。

第一步自然是去Amazon注册账号。这里给的是EC2的地址,不过一样。 http://aws.amazon.com/ec2/    现在Amazon提供了很多不同种类的云服务,存储的有S3,就和DropBox一个原理,不过没那么方便易用,主要用途还是在于作为其他计算服务的输入输出数据仓库一样;数据库有SimpleDB,是非关系型的数据库,貌似是BigTable类似结构的,还有关系型数据库,不过不免费。大部分服务都是有免费时间或存储容量的,EMR就没有,虽然很便宜,但是跑EMR必须要用到EC2,虽然用EC2跑其他一些东西是免费的,但用EC2跑EMR则不是免费的,所以跑一次价格大致是0.085*2(EC2)加 0.015*2(EMR),0.2美元。我每次都是跑至少两个机子的,一个是Master,必须有一个;另外一个是Core Instance,我也选了一个。

第二步就是在S3创建Bucket。Bucket相当你个人的一个文件夹,在所有S3bucket名字中必须是唯一的。

第三步,测试程序。建议各位先在本地的机子上把你的Hadoop文件打包成可执行Jar,跑一遍MapReduce后再准备修改。如果这一步都成功不了那在EMR上几乎肯定会失败的。命令格式 [hadoop  -jar  jar文件路径  参数]。EMR好像只支持0.18和0.20的Hadoop,编译记得用正确的Hadoop库版本。

第四步,上传输入输出文件,创建文件夹。

MapReduce是一种分布式计算模型,由Google在2004年提出,用于大规模数据集的并行处理。它的基本架构包括两个主要阶段:Map阶段和Reduce阶段。 1. **Map阶段**:在这个阶段,输入数据被分割成多个小块,每个块都会分配给集群中的一个节点进行处理。Mapper函数接收这些小块,对数据进行转换(键值对分割),将中间结果以键值对的形式发送出去,键作为排序依据,值作为待处理的数据。 2. **Reduce阶段**:Mapper生成的中间键值对经过排序后,被传递到Reducer函数中。Reducer函数接收同一键的所有值,进行聚合操作,生成最终的输出结果。 Amazon EMRElastic MapReduce)是Amazon Web Services(AWS)提供的一个托管服务,用于在云中大规模地运行Hadoop MapReduce、Apache Spark等大数据处理框架。它基于Hadoop,但提供了自动化管理和扩展能力,使得用户无需自行管理集群基础设施。 EMR的特点包括: - **弹性扩展**:可以根据需求自动调整集群规模,无论是增加或减少节点。 - **一键式部署**:用户可以通过EMR界面或API快速启动和停止Hadoop集群。 - **集成其他服务**:如S3存储、EC2实例、Kafka等,提供了完整的数据处理生态系统。 - **成本优化**:按需计费,避免了传统Hadoop集群的初始硬件投入和运维成本。 相比于经典MapReduce框架,EMR的优势在于: - **简化运维**:用户不再需要关注底层硬件和配置管理。 - **资源高效利用**:自动缩放功能减少了资源浪费。 - **更好的支持实时和流处理**:通过添加如Spark Streaming或Kinesis Data Streams等组件。 在实验过程中,理解和应用这些知识点可能涉及: - **编写Map和Reduce函数**:理解如何定义和实现自定义的mapper和reducer逻辑。 - **配置和调优作业**:学习如何设置任务分区数、内存和磁盘分配,以优化性能。 - **监控和诊断**:通过EMR提供的监控工具跟踪任务进度和性能瓶颈。 - **结合其他AWS服务**:了解如何使用S3存储数据,或者使用Kinesis Data Firehose进行实时数据处理。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值