问题标签 [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 - 为什么大象鸟猪 JsonLoader 只处理我文件的一部分?
我在 Amazon 的 Elastic Map-Reduce 上使用 Pig 进行批量分析。我的输入文件位于 S3 上,并且包含由每行一个 JSON 字典表示的事件。我使用大象鸟 JsonLoader 库来解析输入文件。到目前为止,一切都很好。
在交互式 Pig 会话中处理存储在本地文件系统或 hdfs 上的大文件时,我遇到了问题。看起来如果输入文件大到可以拆分,大象鸟只处理过一个拆分,并且在拆分结束时处理停止并且没有错误消息。如果我从 S3 流式传输输入(在 S3 输入上没有文件拆分),或者我将文件转换为 Pig 可以直接读取的格式,我不会遇到同样的问题。
举一个具体的例子:一个有 833,138 行的文件最多只能处理 379,751 行(如果我在 Pig 中观察完成百分比,它会平稳地上升到 50%,然后跳到 100%)。我还尝试了一个包含 400,000 行的文件,并且处理得很好。
所以我的问题是:为什么大象鸟只处理一个拆分?我是否误解了交互模式下的 Pig 应该如何工作,或者发生了什么大错特错?
amazon-ec2 - 运行依赖于 Numpy 的 Amazon Elastic Mapreduce 作业的方法是什么?
我的 Mapreduce 作业的地图部分依赖于 Numpy。所以,这意味着我需要安装 numpy 作为引导操作的一部分。
我想做的是构建一个存储在 S3 上的自定义 Numpy 包,该包在 boostrap 操作期间被获取和安装。
有没有更好的办法?
amazon-ec2 - 使用 s3 作为 fs.default.name 还是 HDFS?
我在 EC2 上设置了一个 Hadoop 集群,我想知道如何做 DFS。我所有的数据目前都在 s3 中,所有 map/reduce 应用程序都使用 s3 文件路径来访问数据。现在我一直在研究 Amazon EMR 是如何设置的,似乎对于每个工作流,都设置了一个名称节点和数据节点。现在我想知道我是否真的需要这样做,或者我是否可以使用 s3(n) 作为 DFS?如果这样做,有什么缺点吗?
谢谢!
jar - Elastic Map 减少外部罐子
因此,直接使用 hadoop 时很容易处理外部 jar。您有 -libjars 选项可以为您执行此操作。问题是您如何使用 EMR 做到这一点。必须有一个简单的方法来做到这一点。我认为 CLI 的 -cachefile 选项会做到这一点,但我无法让它以某种方式工作。有什么想法吗?
谢谢您的帮助。
python - Amazon Elastic MapReduce - python map 和 reduce 代码的格式或示例
也许 Hadoop 也是如此,但我只是在此处的地图示例旁边找不到编写地图和减少 python 代码的格式或示例:http: //docs.amazonwebservices.com/ElasticMapReduce/latest/GettingStartedGuide/
但我找不到减少代码示例,
它和Hadoop一样吗?格式是什么,是否有任何示例?
amazon-emr - Amazon Elastic Map Reduce:输入片段大小是否重要
鉴于我需要使用 10 个实例来处理 20 Gb 的输入。有 10 个 2Gb 的输入文件与 4 个 5Gb 的输入文件有什么不同吗?在后一种情况下,Amazon Elastic MapReduce 能否自动将 4 个输入文件的负载分配到 10 个实例?(我正在使用 Streaming 方法,因为我的映射器是使用 ruby 编写的)
apache-pig - Pig:更改输出文件 NAME 的格式
我正在运行一个弹性 mapreduce 管道,该管道使用多个猪脚本的输出。本质上,猪脚本的输出存储在 S3 上的某个位置,由于数据量很大,因此创建的输出文件命名为 part-xxxxx。
现在我的问题是我的管道中的一个步骤是从两个不同的位置复制内容并将它们放在一起,然后对整个集合进行处理。现在,由于两个位置的文件名称相似(part-00000 到 part-00342),我的文件在复制过程中被覆盖。
默认情况下,pig 在给定位置使用这种文件名格式生成我的输出文件。最初,我曾经将 pig 输出文件下载到我的磁盘,编写一个 python 程序来重命名它们,然后将它们上传回 S3。由于数据量太大,我现在不能这样做。
我不拥有实际执行此复制的管道步骤。我所能控制的(也许)是被复制的文件的名称)。所以我需要知道是否有办法为 pig 创建的零件文件的名称附加前缀。
谢谢
java - 多个文件作为 Amazon Elastic MapReduce 上的输入
我正在尝试使用自定义 jar 在 Elastic MapReduce (EMR) 上运行作业。我正在尝试在单个目录中处理大约 1000 个文件。当我使用参数提交作业时s3n://bucketname/compressed/*.xml.gz
,我收到“匹配 0 个文件”错误。如果我只传递一个文件的绝对路径(例如s3n://bucketname/compressed/00001.xml.gz
),它运行良好,但只有一个文件得到处理。我尝试使用目录的名称 ( s3n://bucketname/compressed/
),希望其中的文件将被处理,但这只是将目录传递给作业。
同时,我有一个较小的本地 hadoop 安装。在那里,当我使用通配符 ( /path/to/dir/on/hdfs/*.xml.gz
) 通过我的工作时,它工作正常并且所有 1000 个文件都正确列出。
如何让 EMR 列出我的所有文件?
amazon-web-services - 有没有人使用 Amazon 的 Elastic Map Reduce 的 ruby 客户端创建具有多个输入的工作?
通过 UI Amazon 的框架允许我通过指定多个 --input 行来创建具有多个输入的作业。例如:
-input s3n://something -input s3n://something-else
同样,到目前为止,Ruby EMR 客户端对我很有帮助:http: //aws.amazon.com/developertools/2264
但是,我正在尝试编写一个需要多个输入的夜间作业,但我似乎找不到任何方法来做到这一点。它不会让我传递多个 -input 参数,并且当我使用 --arg 或 --args 时,创建的作业不包含 -input 行。就好像它正在剥离它一样。
有没有人成功地使用这个工具来达到这个目的?
java - java.lang.RuntimeException:尝试在 Elastic MapReduce 上运行 Jar 作业时出现 java.lang.ClassNotFoundException
我应该改变什么来修复以下错误:
我正在尝试在 Elastic Mapreduce 上开始工作,并且每次都会崩溃并显示以下消息:
声明了类NewMaxTemperatureMapper并且我已经检查过,它包含在 jar 中,它位于 s3 中。这是所有应用程序类的代码:
新MaxTemperature.java:
NewMaxTemperatureReducer.java:
NewMaxTemperatureMapper.java:
我已经在此处制作了导致此崩溃的 jar 文件:下载 jar