在本文中,我将通过针对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

通过命令行界面使用AWS ElasticMapReduce相关推荐

  1. aws s3 命令行_通过命令行界面使用AWS ElasticMapReduce

    aws s3 命令行 在本文中,我将通过使用EMR的CLI使用AWS MapReduce服务(称为ElasticMapReduce ). 使用EMR的过程可以大致分为三个步骤: 设置并填充S3存储桶 ...

  2. aws cli_学习AWS CLI:AWS CLI概述(AWS命令行界面)

    aws cli This article is the first article in the series of Learn AWS CLI. Here we will talk about th ...

  3. 配置 aws cli_AWS CLI教程–如何安装,配置和使用AWS CLI了解您的资源环境

    配置 aws cli How to get exactly the account and environment information you need to manage your AWS ac ...

  4. aws cli 使用_学习AWS CLI –使用AWS CLI探索IAM用户,角色,策略

    aws cli 使用 AWS provides a command-line interface (AWS CLI) tool to work with its various cloud servi ...

  5. AWS云计算题目总结

    相较本地计算云计算的优势有:1.避免大额购买2.使用按需容量3.数分钟内实现全球化部署4.提高速度和敏捷性 按实际使用量付费,可使aws用户能够按需为资源付费. 云部署模型:平台及服务.基础设施即服务 ...

  6. gdb -iex_如何使用IEX Cloud,Matplotlib和AWS在Python中创建自动更新数据可视化

    gdb -iex Python is an excellent programming language for creating data visualizations. Python是用于创建数据 ...

  7. AWS云计算基础习题(含答案)

    模块1: 相比本地计算,云计算的优势哪些?避免大额购买:使用按需容量:数分钟内实现全球化部署:提高速度和敏捷性. 哪种定价模型可使 AWS 用户能够按需为资源付费?按实际使用量付费 哪项不是云部署模型 ...

  8. AWS Technical Essentials + Architecting on AWS 培训概要笔记

    目录 一.AWS简介与历史 二.AWS Region.AZ.Edge Location 三.安全性.身份和访问管理IAM 1. AWS CloudTrail 四.AWS存储服务 1. Amazon S ...

  9. 【AWS学习笔记】aws cli 与 aws sdk简介

    文章目录 AWS cli aws cli是什么 aws cli的使用 AWS SDK AWS cli aws cli是什么 AWS提供了两种基础架构配置方式. 使用AWS Web控制台:这是一种图形方 ...

最新文章

  1. ajax csv写文件内容,接收.csv文件作为ajax成功函数中的数据
  2. 两位MIT学霸,25岁退学,40岁完成800亿IPO!
  3. latex Label ' ' multiply defined
  4. 【方案】0615冰箱运行监测系统资料整理:进展及规划
  5. linux hive创建数据库失败,Hive本地模式安装及遇到的问题和解决方案
  6. JavaWeb(十)——jetty服务器、创建jsp项目、servlet生命周期及url的匹配规则
  7. SAP Cloud Platform API management Policy Editor的高级用法
  8. 最大流自用模板(例题:HDU1532)
  9. rds 如何学习数据库_如何将本地数据库迁移到云数据库 RDS 上?
  10. java调用linux命令
  11. 机动车辆保费计算器 1.1新版发布
  12. 主键思维定势导致的惨案
  13. 【汇编语言】程序格式
  14. KeyBlaze for mac(专业打字练习软件)激活版
  15. Apple设备的列表中的手机却不能更新iOS 14怎么办
  16. 自动更新纯真IP数据库
  17. 三做一年级算术题-吐槽挖雷
  18. 计算机网络:路由协议分类——IGP和EGP
  19. sim的准确识别技术
  20. ubuntu12.04.4安装tcl/tk和Tkinter

热门文章

  1. 中南大学计算机网.doc,中南大学计算机网络实验报告.doc
  2. 类的继承python 简明_[简明python教程]学习笔记2014-05-04
  3. python下面的代码_解析一下下面的python代码?
  4. (转)mysql查看连接客户端ip和杀死进程
  5. 把本地库推送到github远程库
  6. spring(10)通过spring 和 JDBC征服数据库
  7. jdk open jdk_JDK 14的迹象开始出现
  8. 化学专业尽早转行_尽早查看针对Java 11的功能
  9. java 不同类型 映射_如何使用Java泛型映射不同的值类型
  10. pooled-jms_Hibernate隐藏的宝石:pooled-lo优化器