问题标签 [elastic-map-reduce]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3040 浏览

amazon-web-services - 将压缩(lzo)数据从 s3 导入 hive

我将 DynamoDB 表导出到 s3 作为备份方式(通过 EMR)。导出时,我将数据存储为 lzo 压缩文件。我的配置单元查询如下,但基本上我遵循了http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/EMR_Hive_Commands.html上的“使用数据压缩将 Amazon DynamoDB 表导出到 Amazon S3 存储桶”

我现在想做相反的事情 - 拿我的 LZO 文件并将它们放回蜂巢表中。你怎么做到这一点?我期待看到一些用于输入的配置单元配置属性,但没有。我用谷歌搜索并找到了一些提示,但没有确定的,也没有任何有效的。

s3 中的文件格式为:s3://[mybucket]/backup/year=2012/month=08/day=01/000000.lzo

这是我进行导出的 HQL:

任何想法如何从 s3 中获取它,解压缩并进入配置单元表?

0 投票
2 回答
3396 浏览

python - Amazon Elastic MapReduce - SIGTERM

我有一个 EMR 流作业 (Python),它通常工作正常(例如 10 台机器处理 200 个输入)。但是,当我针对大型数据集(12 台机器处理总共 6000 个输入,每个输入大约 20 秒)运行它时,经过 2.5 小时的运算后,我收到以下错误:

如果我没看错,则子进程失败并显示代码 143,因为有人向流式作业发送了 SIGTERM 信号。

我的理解正确吗?如果是这样:EMR 基础设施何时会发送 SIGTERM?

0 投票
0 回答
327 浏览

hadoop - ElasticMapReduce:是否可以重用已分配的 EMR 集群?

我在创建新集群时在 EMR CLI 中指定了 --alive 选项,我想知道是否可以在启动另一个作业时重用集群?我找不到任何相关选项来获取集群的某种 ID?那么这是否意味着不可能这样做呢?

0 投票
0 回答
771 浏览

java - 为什么在 AWS/EMR 上运行时,我的“字数”Hadoop Reducer 输出文件的一半是 0 字节?

我有一组数据,基本上是简单字数统计的映射结果(带有单词和计数对的文本文件,制表符分隔),我需要减少它。大约有 160 GB 的数据,压缩成 bz2 文件。

当我在 Amazon Web Services Elastic Map Reduce (AWS EMR) 上运行我的工作时,我使用 10 个 cc2.8xlarge 从属服务器和一个 m1.xlarge 作为主服务器。最终有 1200 个 map 任务和 54 个 reduce 任务。恰好一半的reduce 任务在map 任务完成后立即完成,它们的输出都是0 字节。我假设输入是 0 字节,但我还没有充分挖掘日志来确认。其他 27 个 reduce 任务最终完成,并且它们的文件大小是一致的(每个 2.3gb)。对于输出文件(part-r-00000,...,part-r-00053),偶数文件是 0 字节文件。

当我在带有 2 个减速器的非常小的样本上本地运行它时,每个减速器输出都有数据。

我的映射器和减速器如下(去除了 Java 的附加功能):

有没有其他人经历过这个?知道为什么会发生这种情况,或者我该如何进一步调试?我打开了 EMR 调试,以防你想在日志中寻找一些东西。谢谢

编辑:我应该注意到我正在 S3 上读取和存储我的数据

编辑 2:我之前运行过一次相同的作业,我看到了 0 字节文件,并认为我的 Reducer 中有错误,所以取消了作业。因此,我知道这不是一次性事件。该作业在同一个集群上运行。我最初在具有“Hadoop 2.0”的 Cloudera 4 (CDH4) 库上编译了我的 Java 类,所以我认为这可能是问题所在。当我第二次运行它时,我使用了使用 Cloudera 3 (CDH3) 库和 Hadoop 0.20 编译的 Java 类,与 AWS 的版本基本相同。在过去,我也使用 CDH3 来编译没有这种行为。

0 投票
1 回答
2034 浏览

python - 用boto设置hadoop参数?

我正在尝试在我的 Amazon Elastic MapReduce 作业上启用错误输入跳过。我正在遵循这里描述的精彩食谱:

http://devblog.factual.com/practical-hadoop-streaming-dealing-with-brittle-code

上面的链接说我需要以某种方式在 EMR 作业上设置以下配置参数:

如何使用 Boto 在 JobFlow 上设置这些(和其他)mapred.XXX 参数?

0 投票
2 回答
1165 浏览

hive - 为什么增加实例数不会提高 Hive 查询速度

我在 Amazon 的 Elastic MapReduce 中使用 Hive 创建了一个表,将数据导入其中并对其进行分区。现在我运行一个查询来计算表字段之一中最常见的单词。

当我有 1 个主实例和 2 个核心实例并且计算需要 180 秒时,我运行该查询。然后我将它重新配置为拥有 1 个主控和 10 个核心,它也需要 180 秒。为什么不更快?

在 2 核和 10 核上运行时,我的输出几乎相同:

0 投票
1 回答
160 浏览

hadoop - 如何与亚马逊弹性 mapreduce 共享 jar 库?

为了加快 jar 到 s3 的上传速度,我想将所有常见的 jar 复制到普通 hadoop 中的“$HADOOP_HOME/lib”之类的东西。我是否可以在预装这些库的情况下创建自定义 EMR hadoop 实例。还是有更简单的方法?

0 投票
2 回答
839 浏览

amazon-web-services - 为 Elastic MapReduce 配置外部数据源

我们希望在当前数据库之上使用 Amazon Elastic MapReduce(我们在 EC2 上使用 Cassandra)。查看 Amazon EMR 常见问题,应该可以: Amazon EMR 常见问题: 问:我可以从 Internet 或 Amazon S3 以外的其他地方加载我的数据吗?

但是,在创建新的作业流时,我们只能将 S3 存储桶配置为输入数据源。

关于如何做到这一点的任何想法/示例?

谢谢!

PS:我已经看到了这个问题How to use external data with Elastic MapReduce但答案并没有真正解释如何去做/配置它,只是它是可能的。

0 投票
2 回答
1247 浏览

hadoop - 使用 piggybank 和 AvroStorage 解决 EMR 问题

我在 EMR 上运行一个猪脚本,它读取以 Avro 格式存储的数据。它一直在本地运行,但为了让脚本的其他部分在 EMR 上运行,我不得不将我使用的 piggybank.jar 恢复为 0.9.2 而不是 0.10.0。进行该更改后,AvroStorage 静默读取任何数据失败,仅返回零记录。日志中没有提到任何内容。这是脚本:

同样,如果 piggybank.jar 是 0.10.0 版,它可以工作。如果是 0.9.2 版,则不是。我应该使用任何其他库的不同版本吗?我尝试使用 avro-1.5.3.jar,但也没有用。

另一个注意事项:如果我describe a;正确地输出模式。

0 投票
1 回答
159 浏览

c# - 为什么 Amazon .Net SDK 看不到任何作业流?

我的公司已经厌倦了不断使用 AWS 控制台来设置我们的 map reduce 集群,并且需要比控制台提供的更多的可配置性。我正在使用 .Net AWS SDK 编写一个简单的应用程序,允许我们创建和控制工作流。不幸的是,我的调用DescribeJobFlows总是返回空的(尽管我可以在 AWS 控制台中看到作业)。这是一些示例代码:

这个简单的程序总是打印 0。

我已经三重检查了我的 aws 访问密钥和密钥是否正确,并且我有在该帐户下运行的工作流。我今天创建了几个正在运行的工作流程,所以至少这些应该包含在结果中。我没有看到任何按区域过滤的内容,也没有看到请求中可能包含有趣的默认值的任何内容。

为什么我看不到我的工作流程?