问题标签 [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.
java - Amazon (EMR) 使用哪个 Hadoop 版本?
我想创建一个 Hadoop 作业并在 EC2 Map Reduce 上运行它。我还想在上传到 EC2 之前在本地运行该作业。
我应该在本地拥有哪个版本/类型的 Hadoop?我可以使用 Cloudera 虚拟机吗?亚马逊使用哪个 Hadoop 版本?
jar - 在 EMR 上运行 mahout RecommenderJob
我正在尝试在亚马逊 EMR 上运行 RecommenderJob。我有一个名为 SmartJukebox.jar(不可运行)的 jar,它包含一个 main.TrackRecommander 类(仅此而已)。
我用 jar 创建了一个工作流程:
s3n://smartjukebox/SmartJukebox.jar
和参数:
main.TrackRecommander --input s3n://smartjukebox/ratings.csv --output s3n://smartjukebox/output --usersFile s3n://smartjukebox/user.txt。
TrackRecommander 类使用 RecommenderJob 类。
我运行作业流程,我在错误日志中得到了这个 -
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在org.apache.hadoop.util.RunJar.main(RunJar.java:156) 原因:java.lang.ClassNotFoundException:org.apache.mahout.cf.taste.hadoop.item.RecommenderJob at java.net.URLClassLoader$1。在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 还有 6 个
现在我看到 JVM 找不到 RecommenderJob 并且我没有将 RecommenderJob 放入我的 jar 中。我以为 EMR 会内置 mahout 罐子,但我找不到任何相关信息。
这里的解决方案是什么?
谢谢。
amazon-s3 - 使用 EMR 跨不同账户复制 dynamoDB 表
我在一个 DynamoDB 账户中有很多信息表,我想转移到另一个账户。我看到您可以使用 EMR 在一个帐户中复制表,如下所示:http ://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/EMRforDynamoDB.html ,但是有没有办法跨不同的帐户进行转移?
java - 与 Hadoop MapReduce 的成对比较
我有一个大文本文件(5 GB),每行一个字符串。我需要使用专有算法将每一行与其他每一行进行比较。我是 MapReduce 的新手,但有 Java 经验。给我带来麻烦的问题是创建单独的地图输入。文档似乎是在假设每一行不依赖于任何其他行的情况下编写的。这样做的最佳方法是什么?
ruby - 使用 SequenceFile 的 Hadoop 流式处理(在 AWS 上)
我有大量的 Hadoop 序列文件,我想在 AWS 上使用 Hadoop 进行处理。我现有的大部分代码都是用 Ruby 编写的,因此我想在 Amazon EMR 上使用 Hadoop Streaming 以及我的自定义 Ruby Mapper 和 Reducer 脚本。
我找不到任何关于如何将序列文件与 Hadoop 流集成以及如何将输入提供给我的 Ruby 脚本的文档。我很感激一些关于如何启动作业(直接在 EMR 上,或者只是一个普通的 Hadoop 命令行)以使用 SequenceFiles 的说明,以及一些关于如何期望将数据提供给我的脚本的信息。
--编辑:我之前错误地提到了 StreamFiles 而不是 SequenceFiles。我认为我的数据文档不正确,但很抱歉。答案很容易改变。
python - Amazon Elastic MapReduce - SIGTERM
我有一个 EMR 流作业 (Python),它通常工作正常(例如 10 台机器处理 200 个输入)。但是,当我针对大型数据集(12 台机器处理总共 6000 个输入,每个输入大约 20 秒)运行它时,经过 2.5 小时的运算后,我收到以下错误:
如果我没看错,则子进程失败并显示代码 143,因为有人向流式作业发送了 SIGTERM 信号。
我的理解正确吗?如果是这样:EMR 基础设施何时会发送 SIGTERM?
r - 从 RDS 迁移到 Elastic MapReduce + Hive 是正确的选择吗?
首先,我必须明确表示我是新手,如果我在我的问题中没有使用正确的术语,请原谅我自己。
这是我的场景:
我需要分析大量文本,如推文、评论、邮件等。数据当前在发生时插入到 Amazon RD MySQL 实例中。
后来,我在该数据上使用 RTextTools ( http://www.rtexttools.com/ ) 在本地运行和 R 作业,以输出我想要的结果。在这一点上,重要的是要明确 R 脚本分析数据并将数据写回 MySQL 表中,该表稍后将用于显示它。
我最近遇到的问题是,每次运行该工作大约需要 1 小时,而且我每天至少需要执行 2 次......因此不再可以选择使用本地计算机。
为了寻找替代方案,我开始阅读有关 Amazon Elastic MapReduce 实例的信息,乍一看似乎是我需要的,但从这里开始我的问题和困惑。
- 我读到 EMR 的数据应该从 S3 存储桶中提取出来。如果是这种情况,那么我必须开始将我的数据存储到 S3 存储桶中的 JSON 或类似文件中,而不是存储到我的 RDS 实例中,对吗?
- 在这一点上,我读到创建 HIVE 表然后使用 RHive 读取数据以便 RTextTools 完成其工作并将结果写回我的 RDS 表是一个好主意,对吗?
- 现在是最后一个也是最重要的问题:与使用 R 运行 EC2 实例并在那里运行我的 R 脚本相比,付出所有这些麻烦是否值得,我会减少计算时间吗?
非常感谢您的时间,任何正确方向的提示将不胜感激
amazon-s3 - EMR 如何将文件合二为一?
我已将大二进制文件拆分为 (2Gb) 块并将其上传到 Amazon S3。现在我想将它加入一个文件并使用我的自定义处理
我试过跑
但由于 -cat 将数据输出到我的本地终端而失败 - 它无法远程工作......
我怎么能做到这一点?
PS 我尝试将 cat 作为流式 MR 作业运行:
这项工作已成功完成。但。我在 dir/in 中有 3 个文件部分 - 现在我在 /dir/out 中有 6 个部分
和文件 _SUCCESS ofcource 这不是我的输出的一部分......
所以。如何加入拆分前的文件?
java - 用于引用 s3 jar 文件的弹性 MapReduce libjars 参数
我正在尝试在 Amazon 上运行自定义 jar EMR 作业,并且在我的 jar 文件中引用了 lucene jar 文件。我在 s3 的 lib 目录中有 jar 文件,我的 Jar 参数如下所示:
作业失败,我不断收到以下错误:
java.lang.NoClassDefFoundError: org/apache/lucene/analysis/Analyzer at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at org.apache.hadoop.conf .Configuration.getClassByName(Configuration.java:861) 在 org.apache.hadoop.conf.Configuration.getClass(Configuration.java:906) 在 org.apache.hadoop.conf.Configuration.getClass(Configuration.java:932) 在org.apache.hadoop.mapred.JobConf.getMapperClass(JobConf.java:959) at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34) ... 14 更多原因:java.lang.ClassNotFoundException : org.apache.lucene.analysis.Analyzer at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java :190) 在 java.lang。ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 21 更多
它似乎没有找到 lucene jar 文件......我错过了什么?
hive - 为什么增加实例数不会提高 Hive 查询速度
我在 Amazon 的 Elastic MapReduce 中使用 Hive 创建了一个表,将数据导入其中并对其进行分区。现在我运行一个查询来计算表字段之一中最常见的单词。
当我有 1 个主实例和 2 个核心实例并且计算需要 180 秒时,我运行该查询。然后我将它重新配置为拥有 1 个主控和 10 个核心,它也需要 180 秒。为什么不更快?
在 2 核和 10 核上运行时,我的输出几乎相同: