问题标签 [amazon-emr]
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.
amazon-web-services - Amazon Elastic Map Reduce - 保持服务器存活?
我正在测试 EMR 中的工作,每次测试都需要很长时间才能启动。有没有办法让 Amazon EMR 中的服务器/主节点保持活动状态?我知道这可以通过 API 完成。但是,我想知道这是否可以在 aws 控制台中完成?
streaming - Hadoop流最大行长
我正在为 Amazon Elastic Map Reduce 开发 Hadoop 流式工作流,它涉及序列化一些二进制对象并将它们流式传输到 Hadoop。Hadoop 是否有流输入的最大行长?
我开始用越来越大的线进行测试,但我想我会先在这里问。
amazon-ec2 - 如何在 Amazon Elastic Mapreduce 之上使用 Hive 来处理 Amazon Simple DB 中的数据?
我在 Amazon Simple DB 域中有很多数据。我想在 Elastic Map Reduce 上启动 Hive(在 hadoop 之上),并且以某种方式从 simpledb 导入数据,或者连接到 simpledb 并在其上运行 hiveql 查询。我在导入数据时遇到问题。任何指针?
hadoop - Hadoop 流和 AMAZON EMR
我一直在尝试使用 Amazon EMR 中的 Hadoop 流对一堆文本文件进行简单的字数统计。为了掌握 hadoop 流和 Amazon 的 EMR,我也采用了一个非常简化的数据集。每个文本文件中只有一行文本(该行可以包含任意数量的单词)。
映射器是一个 R 脚本,它将行拆分为单词并将其吐回流中。
cat(wordList[i],"\t1\n")
我决定使用 LongValueSum Aggregate reducer 将计数加在一起,因此我必须在映射器输出前加上 LongValueSum
cat("LongValueSum:",wordList[i],"\t1\n")
并将减速器指定为“聚合”
我现在的问题如下:
mapper 和 reducer 之间的中间阶段,只是对流进行排序。它并没有真正通过按键组合。我对吗?我问这个是因为如果我不使用“LongValueSum”作为映射器输出的单词的前缀,在reducer 处我只会收到按键排序的流,但不会聚合。那就是我只收到 K 的排序,而不是减速器的 (K, list(Values)) 。我需要在命令中指定组合器吗?
如何使用其他聚合减速器。我看到,http://hadoop.apache.org/mapreduce/docs/r0.21.0/api/org/apache/hadoop/mapred/lib/aggregate/package-summary 上有很多其他的 reducer/aggregate/combiners 。 html
这些组合器和减速器是如何在 AMAZON EMR 设置中指定的?
我相信此类问题已在 Hadoop 流中为组合器提交并修复,但我不确定 AMAZON EMR 托管的版本是什么,以及此修复可用的版本。
- 自定义输入格式和记录读取器和写入器怎么样。有一堆用 Java 编写的库。为每个选项指定 java 类名是否足够?
r - 对 Amazon Elastic MapReduce 上的 R 映射器脚本进行故障排除 - 结果与预期不符
我正在尝试使用Amazon Elastic Map Reduce运行数百万个案例的一系列模拟。这是一个没有减速器的 Rscript 流作业。我在 EMR 通话中使用 Identity Reducer --reducer org.apache.hadoop.mapred.lib.IdentityReducer
。
当手动传递一行字符串时,脚本文件在测试和本地运行时运行良好echo "1,2443,2442,1,5" | ./mapper.R
,我得到了我期望的一行结果。但是,当我使用 EMR 上的输入文件中的大约 10,000 个案例(行)测试我的模拟时,我在 10k 输入行中只得到了十几行左右的输出。我已经尝试了几次,但我不知道为什么。Hadoop 作业运行良好,没有任何错误。似乎正在跳过输入行,或者 Identity reducer 可能发生了一些事情。对于有输出的情况,结果是正确的。
我的输入文件是具有以下数据格式的 csv,由逗号分隔的五个整数组成:
这是我的mapper.R的 R 脚本
此模拟的(广义)EMR 调用是:
如果有人对我为什么会遇到这些问题有任何见解,我愿意接受建议,以及对 R 脚本的任何更改/优化。
我的另一个选择是将脚本变成一个函数并使用 R 多核包运行并行化应用,但我还没有尝试过。我想让这个在 EMR 上工作。我使用JD Long和
python - 我的 boto 弹性 mapreduce jar 工作流参数有什么问题?
我正在使用 boto 库在 Amazons Elastic MapReduce Webservice (EMR) 中创建工作流。以下代码应创建一个步骤:
当我运行作业流程时,它总是无法抛出此错误:
这是 EMR 日志中调用 java 代码的行:
参数有什么问题?java类定义可以在这里找到:
amazon-s3 - 将目录作为压缩文件从 Elastic MapReduce 上传到 S3
我想将 EMR 本地文件系统中的目录作为压缩文件上传到 s3。
有没有比我目前使用的方法更好的方法来解决这个问题?
是否可以将 ZipOutputStream 作为 Reducer 输出返回?
谢谢
python - 在 Hadoop MapReduce 脚本中导入外部库
我在 Amazons EMR Hadoop 实施之上运行 python MapReduce 脚本。作为主要脚本的结果,我得到了项目项目的相似之处。在后续步骤中,我想将此输出拆分为每个项目的单独 S3 存储桶,因此每个项目存储桶都包含与其类似的项目列表。为了实现这一点,我想在 aftercare 步骤的 reduce 函数中使用 Amazons boto python 库。
- 如何将外部(python)库导入hadoop,以便可以在用python编写的reduce步骤中使用它们?
- 是否可以在 Hadoop 环境中以这种方式访问 S3?
在此先感谢,托马斯
hadoop - 如何将 Hadoop Streaming 与 LZO 压缩的序列文件一起使用?
我正在尝试使用 Amazon 的 Elastic Map Reduce 来处理 Google ngrams 数据集。在http://aws.amazon.com/datasets/8172056142375670有一个公共数据集,我想使用 Hadoop 流。
对于输入文件,它说“我们将数据集存储在 Amazon S3 中的单个对象中。该文件是具有块级 LZO 压缩的序列文件格式。序列文件键是存储为 LongWritable 的数据集的行号,并且value 是存储为 TextWritable 的原始数据。”
为了使用 Hadoop Streaming 处理这些输入文件,我需要做什么?
我尝试在我的论点中添加一个额外的“-inputformat SequenceFileAsTextInputFormat”,但这似乎不起作用——我的工作由于某些未指明的原因而不断失败。我还缺少其他论点吗?
我尝试使用一个非常简单的身份作为我的映射器和减速器
但这不起作用。
amazon-s3 - 将大型数据集放到亚马逊弹性地图上
有一些大型数据集(25gb+,可在 Internet 上下载)我想使用 Amazon EMR 进行尝试。不是将数据集下载到我自己的计算机上,然后将它们重新上传到亚马逊,将数据集上传到亚马逊的最佳方法是什么?
我是否要启动 EC2 实例,从实例中将数据集(使用 wget)下载到 S3,然后在运行 EMR 作业时访问 S3?(我之前没有使用过亚马逊的云基础设施,所以不确定我刚才所说的是否有意义。)