暖通毕业设计代做网站,物流网站开发,用云速成美站怎么做网站,学习前端开发的网站在本文中#xff0c;我将通过针对EMR的CLI使用AWS MapReduce服务#xff08;称为ElasticMapReduce #xff09;。 使用EMR的过程可以大致分为三个步骤#xff1a; 设置并填充S3存储桶 创建并运行EMR作业 从S3存储桶中获取结果 在开始这三个高级步骤之前#xff0c;还… 在本文中我将通过针对EMR的CLI使用AWS MapReduce服务称为ElasticMapReduce 。 使用EMR的过程可以大致分为三个步骤 设置并填充S3存储桶 创建并运行EMR作业 从S3存储桶中获取结果 在开始这三个高级步骤之前还需要安排一些其他事项 您将需要拥有一个AWS账户 您将需要在计算机上安装S3客户端 您将需要在计算机上安装EMR CLI 好吧对于AWS账户我只是假设它存在否则就该让自己一个了 作为S3客户端我使用s3cmd 我在这里描述了安装。 要安装EMR CLI在运行Lion的MacBook上请按照此处介绍的步骤进行操作。 如说明所述CLI可与Ruby 1.8.7版一起使用。 而不是更高版本。 由于我的MacOS默认情况下带有Ruby 1.9.3因此确实不起作用。 但是没有恐慌只是得到最新版本的CLI的这里从GitHub的我更喜欢在降级标准的Ruby安装。 安装EMR后需要对其进行配置。 第一步是在EMR CLI目录的根目录中创建一个credentials.json文件。 我的凭据.json的内容 {
access_id: XXXXXXXXXXXXXXX,
private_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,
keypair: 4synergy_palma,
key-pair-file: /Users/pascal/4synergy_palma.pem,
log_uri: S3://map-reduce-intro/log,
region: eu-west-1
} 安装CLI后我们可以开始实际工作。 我只坚持《 EMR开发人员指南》中的示例。 1.设置并填充S3存储桶 打开终端窗口。 从命令行创建S3存储桶 s3cmd mb s3://map-reduce-intro 创建一个要与测试作业一起使用的输入文件 nano input.txt 并在其中添加一些文本 接下来将此文件上传到存储桶中新文件夹中的存储桶中 s3cmd put input.txt s3://map-reduce-intro/input/ 接下来创建一个映射器函数Python脚本并将其上传到S3存储桶 nano wordsplitter.py 并从开发人员指南中放入示例脚本 将该文件也上传到S3存储桶中如下所示 s3cmd put wordsplitter.py s3://map-reduce-intro/job/ 如开发人员指南中所述由于我们使用的是Hadoop的默认约简功能“聚合”因此我们仅提供了映射脚本。 现在输入已准备就绪我们可以创建作业并执行它。 2.创建并运行EMR作业 为此我们从EMR CLI安装的根目录执行以下命令 ./elastic-mapreduce --create --stream --mapper s3://map-reduce-intro/job/wordsplitter.py --input s3://map-reduce-intro/input --output s3://map-reduce-intro/results --reducer aggregate 终端中的输出将只是一个作业ID例如 Created job flow j-2MO24NGGNMC5N 从S3存储桶中获取结果 如果我们移至S3存储桶并列出“结果”文件夹则会看到以下内容请注意启动执行和终止集群可能需要几分钟的时间 MacBook-Air-van-Pascal:~ pascal$ s3cmd ls s3://map-reduce-intro/results/
2013-05-06 20:03 0 s3://map-reduce-intro/results/_SUCCESS
2013-05-06 20:03 27 s3://map-reduce-intro/results/part-00000
MacBook-Air-van-Pascal:~ pascal$ _SUCCESS文件只是告诉我们这项工作进展顺利。 文件“ part-00000”包含我们执行的“聚合”操作的输出。 要获得它请执行以下操作 s3cmd get s3://map-reduce-intro/results/part-00000 现在如果我们查看预期的内容 我知道这是一个非常基本的示例关于EMR的确还有很多要展示的地方但是至少这应该让您自己开始使用它。 需要记住的一件事是每小时收取费用如果您仅使用群集几秒钟则需要支付整个小时的费用。 一个小时的成本比群集的EC2成本高约0.015美分。 参考 The Pragmatic Integrator博客上的JCG合作伙伴 Pascal Alma 结合使用AWS ElasticMapReduce和命令行界面 。 翻译自: https://www.javacodegeeks.com/2013/05/using-aws-elasticmapreduce-with-the-command-line-interface.html