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

aws s3 命令行

在本文中,我将通过使用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 s3 命令行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在5分钟内将Spring Boot作为Windows服务启动

最近,我不得不将Spring Boot应用程序部署为Windows服务,并且对使用winsw如此容易感到惊讶。 我之前曾写过关于使用procrun – Java程序作为Windows服务的文章 ,但是winsw更加容易 入门 Spring Boot文档的第59节是有关安装Spring Boot应用程序…

linux下用c语言打印hellword,用C语言写一个Helloworld_实现第一步编译运行

asp.net在线预览txt文件(简单实现)最近在做文件的在线预览,发现txt文件没有一个较好的方法去实现,想了想可能是比较简单就直接在后台输出了 txt文件Windows 环境下基于 Redis 的 Celery 任务调度模块的实现搭建环境: Windows-x64 10 Celery 3.1.2…

c语言自动计算时间,C语言 · 计算时间

【工业串口和网络软件通讯平台(SuperIO)教程】四.开发设备驱动SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 开发准备 把“开发包”内的所有文件复制到项目的“bin”目录下,或项目下的专用生成目录.开发包 ...java compiler leve…

matchers依赖_Hamcrest Matchers,Guava谓词和Builder设计模式

matchers依赖通常,在编码时,我们必须处理其中包含数十个字段的一些POJO对象。 很多时候,我们通过一个带有数十个参数的构造函数来初始化这些类,这以任何可能的想象的方式都是可怕的。 除此之外,使用这些构造函数的函数…

8255编程c语言程序,51单片机8255驱动C程序

/*----------------------------------------------------------------------------------------------------------------库文件名称:driver8155.h功能描述:驱动8155,不需要了解8255的工作原理,透明操作8255的三个输入输出口PA、…

如何编写更少,更好的代码,或Project Lombok

我长期以来一直打算撰写有关Lombok项目的文章 ,以至于每当一个自重的Java开发人员都已经听说过它时,我可能会写它。 尽管如此,值得一提的是,如果只是提醒自己,不要犹豫,尝试性能增强工具并查看它们是否合适…

c语言ue,小话C语言中的cotinue和break

#includeint fun(){ printf("fun\n");return 1;}int main(int argc,char *argv[]){int c0;printf("please input your num ,case 3 to break\n");do{scanf("%d",&c);switch(c){case 0:break; /*这里的break只会跳出swtich*/case 1:continue;…

c语言 at指令,学渣求指教,如何识别字符串中的AT命令并逐个输出,求程序!!!...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Topic – to implement a parser to retrieve AT command line and print out (1) the tokensone by one and (2) the elapse time of each command line (processing).Please submit the solution in 48 hours.- The solution cou…

defender 删除_Java 8中的默认方法(Defender方法)简介

defender 删除我们都知道Java中的接口仅包含方法声明,而没有实现,并且任何实现该接口的非抽象类都必须提供实现。 让我们看一个例子: public interface SimpleInterface {public void doSomeWork(); }class SimpleInterfaceImpl implements …

江西财经研究生834c语言试卷,江西财经大学2006年考研C语言程序设计试题(B卷)

1、给定一个数X,判断它至少能被3,5,7中的两个数整除的表达式。(5分)某学生今年学习5门课程,其考试成绩为:X1、X2、X3、X4、X5.请写出该同学符合三好学生学习成绩的表达式。(5分)3、a,b,c为三条边…

JAX-RS 2.1的Jersey客户端依赖性

泽西岛是JAX-RS 2.1的参考实现。 为了在企业容器外部运行具有JSON-P和JSON-B映射的JAX-RS 2.1客户端&#xff0c;需要以下Jersey依赖项。 Jersey客户端2.6版实现了JAX-RS 2.1 API。 以下依赖性将客户端运行时添加到项目中&#xff1a; <dependency><groupId>org.…

1到10用递归c语言,为什么这个递归能输出1到10

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼首先你的main函数调用printN&#xff0c;作为调用者他会做这么几件事1.将参数10压栈&#xff1b;2.将Return Address压栈&#xff0c;即第19行的地址&#xff1b;3.跳转到函数体&#xff1b;在函数体中&#xff0c;作为被调用者他会…

Android 画布画线,android实现一个简单的画布,可以用手指画线条。

满意答案wpdhc2016.07.05采纳率&#xff1a;49% 等级&#xff1a;7已帮助&#xff1a;359人public class DrawView extends View {Context mycontext;int toasttime 1000*60;boolean enabletoast true;//之前的坐标float preX;float preY;//路径private Path path;//画笔p…

camel 数据库_使用Camel在来自不同来源的Solr中索引数据

camel 数据库Apache Solr是建立在Lucene之上的“流行的&#xff0c;快速的开源企业搜索平台”。 为了进行搜索&#xff08;并查找结果&#xff09;&#xff0c;通常需要从不同的源&#xff08;例如内容管理系统&#xff0c;关系数据库&#xff0c;旧系统&#xff09;中提取数据…

android手机连接windows,Windows PC连接Android adb shell的方法

今天突发奇想&#xff0c;想用跟笔记本连接的键鼠操作自己的安卓设备(具体操作先挖个坑之后再填)。首先遇到的问题就是&#xff0c;如何用Windows PC连接自己的安卓设备&#xff0c;因为笔者的笔记本的USB接口有限&#xff0c;又有多部安卓设备&#xff0c;还想同时对多部Andro…

对状态代码使用JAX-RS异常

从JAX-RS资源发送特定HTTP&#xff08;错误&#xff09;状态代码的一种方法是使用javax.ws.rs.core.Response类及其类似Builder Pattern的API。 如果要根据响应主体指定返回类型&#xff0c;则仍然可以这样做&#xff0c;并通过抛出WebApplicationException针对错误发送不同的状…

设置html文字居中自动换行,CSS怎么设置文字自动换行?

CSS怎么设置文字自动换行&#xff1f;下面本篇文章就给大家介绍css设置文字(特别是连续的数字和英文)自动换行的方法。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你们有所帮助。关于换行问题&#xff0c;正常字符的换行是比较合理的&#xff0c;…

html霓虹灯效果图,HTML5 SVG+CSS3霓虹灯文字边框动画特效

【实例简介】【实例截图】【核心代码】使用SVG CSS实现动态霓虹灯文字效果#svgBox{[/b] width:100%;margin:100px auto;}.text{font-size: 64px;font-weight: bold;text-transform: uppercase;fill: none;stroke-width: 2px;stroke-dasharray: 90 310;animation: stroke 6s inf…

动态生成的html元素无法调用js函数,如何确保动态生成的div在js函数被调用之前被加载到DOM中?...

$("#submitB").click(function() {$.post("/previewproposal", $("#proposal-form").serialize(), function(data){$.colorbox({html:data});}, "html");});呈现的HTML是这样的&#xff1a;$(document).ready(function(){function plo…

lambdas for_Java 8 Lambdas –缺少脱离Java的链接

lambdas for我学习了函数式编程&#xff0c;但是后来我决定我更喜欢命令式编程&#xff0c;于是我转回去。 —没人 从命令式编程过渡到函数式编程是当今非常普遍的事情。 互联网上的博客文章充斥着关于它的证词。 我读过的所有内容以及与我交谈过的每个人&#xff08;包括我自…