问题标签 [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.
hadoop - hadoop 流确保每个 reducer 一个键
我有一个映射器,它在处理数据时将输出分类为 3 种不同的类型(类型是输出键)。我的目标是通过 reducer 创建 3 个不同的 csv 文件,每个文件都包含一个键的所有数据,并带有标题行。
键值可以更改并且是文本字符串。
现在,理想情况下,我想拥有 3 个不同的减速器,每个减速器只能获得一个键,它的整个值列表。
除了,这似乎不起作用,因为键没有映射到特定的减速器。
在其他地方对此的答案是编写一个自定义分区器类,它将每个所需的键值映射到特定的减速器。这会很棒,除了我需要在 python 中使用流式传输并且我无法在我的工作中包含自定义流式传输 jar,因此这似乎不是一个选项。
我在 hadoop 文档中看到有一个可用的备用分区器类可以启用二级排序,但对我来说并不是很明显可以使用基于默认或键字段的分区器来确保每个键结束无需编写 java 类并使用自定义流 jar 就可以使用它自己的 reducer。
任何建议将不胜感激。
例子:
映射器输出:
csv2\tfieldA,fieldB,fieldC csv1\tfield1,field2,field3,field4 csv3\tfieldRed,fieldGreen ...
问题是,如果我有 3 个减速器,我最终会得到这样的密钥分配:
一个 reducer 获得两种不同的 key 类型,一个 reducer 根本没有收到任何数据。这是因为 hash(key csv1) mod 3 和 hash(key csv2) mod 3 产生相同的值。
amazon-s3 - 有关 Amazon EMR 上的流式作业流程的问题
我必须使用 Amazon EC2 + S3 + RDS + EMR 制作一个相当复杂的数据处理系统,我有一些一般性问题希望您能帮助我:
- 我需要使用 R,然后我必须使用 Streaming Job Flow。这是否意味着我失去了 Hive 的功能并且我无法在 EMR 作业之上执行 Hive 查询来处理该数据?
- 我可以运行多个作业流程并与之交互吗?
- 如何使用从属作业?
- 完成后可以重新运行工作吗?我不想做一次计算,我想根据数据进化。
- 我可以将变量传递给 Jobs 吗?
- 自动化的正确方法是什么?
amazon-s3 - 为什么 Hive 查询的结果会拆分为多个文件
我设置了一个 Amazon ElasticMapreduce 作业来运行配置单元查询
作业完成后,配置为在 S3 上的输出位置将包含 5 个具有此模式的文件,task_201110280815_0001_r_00000x
其中 x 从 0 变为 4。这些文件很小,每个 35 KB。
是否可以指示 hive 将结果存储在单个文件中?
python - Boto:如何在完成/失败后保持 EMR 作业流程的运行?
如何使用 boto 向等待的 Amazon EMR 作业流添加步骤,而作业流在完成后不会终止?
我在 Amazon 的 Elastic Map Reduce 上创建了一个交互式作业流程并加载了一些表格。当我使用 Boto's 将新步骤传递给作业流程emr_conn.add_jobflow_steps(...)
时,作业流程在完成或失败后终止。
我知道我可以使用run_jobflow
带有keep_alive
参数的 boto 启动作业流程——但我想使用已经在运行的流程。
python - 在 EC2 上运行 mapreduce 作业时如何获取文件名?
我正在学习弹性 mapreduce,并从 Amazon 教程部分中提供的 Word Splitter 示例开始(代码如下所示)。该示例为提供的所有输入文档中的所有单词生成字数。
但我想通过文件名获得字数的输出,即仅在一个特定文档中的字数。由于用于字数统计的 python 代码从标准输入获取输入,我如何判断哪个输入行来自哪个文档?
谢谢。
hive - 验证 Hive HQL 语法?
是否有一种编程方式来验证 HiveQL 语句是否存在诸如基本语法错误之类的错误?我想在将语句发送到 Elastic Map Reduce 之前对其进行检查,以节省调试时间。
hadoop - 在 Amazon MapReduce 上调用已编译的二进制文件
我正在尝试对 Amazon Elastic MapReduce 进行一些数据分析。映射器步骤是一个 python 脚本,其中包括对名为“./formatData”的已编译 C++ 二进制文件的调用。例如:
我可以在 Amazon EMR 上调用这样的二进制可执行文件吗?如果是这样,我将在哪里存储二进制文件(在 S3 中?),我应该在什么平台上编译它,以及我如何确保我的映射器脚本可以访问它(理想情况下它会在当前工作目录中)。
谢谢!
amazon-s3 - 直接从 EMR map/reduce 任务访问 S3
我试图弄清楚如何直接从 EMR 映射任务写入 s3 存储桶。我想运行一个 python 流作业,它会从 Internet 获取一些数据并将其保存到 s3 - 而不将其返回以减少作业。任何人都可以帮助我吗?
amazon-ec2 - 如何配置 Amazon EMR 流作业以使用 EC2 现货实例 (Ruby CLI)?
当我使用 Ruby 命令行界面使用 Amazon Elastic MapReduce (Amazon EMR) 创建流式作业时,如何指定仅使用EC2 现货实例(主实例除外)?下面的命令正在运行,但它“强制”我使用至少 1 个核心实例......
谢谢
hadoop - 如何从 Windows 在亚马逊的弹性 mapreduce (emr) 集群上运行 mapreduce 作业?
我正在尝试学习如何在亚马逊的 EMR 上运行 java Map/Reduce (M/R) 作业。我正在关注的文档在这里http://aws.amazon.com/articles/3938。我在 Windows 7 电脑上。
当我尝试运行此命令时,会显示帮助信息。
当然,因为我在 Windows 机器上,所以我实际上输入了这个命令。我不知道为什么,但是对于这个特定的命令,没有 Windows 版本(所有命令成对显示,一个用于 *nix,一个用于 Windows)。
我的问题是我们如何使用命令行界面(在 Windows 上)从 Windows 向亚马逊的 EMR 提交/运行作业?我试过在网上搜索,但我被带到了野外。任何帮助表示赞赏。
谢谢。