问题标签 [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 回答
1568 浏览

amazon-web-services - 运行 EMR 作业的最低 AWS 策略要求

我想com.test.mybucket使用 MRJob Python 框架对来自 S3 存储桶的数据运行 Elastic Mapreduce。但是,我在 S3 中有很多其他数据,以及我不想接触的其他 EC2 实例。AWS 用户运行完整作业所需的最少可能访问凭证集是多少?

0 投票
1 回答
1142 浏览

amazon-s3 - Amazon MapReduce 输入拆分和下载

我是 EMR 的新手,过去几天我一直在努力解决一些问题。第一个是我要处理的日志已经压缩为 .gz,我想知道这些类型的文件是否能够被 emr 拆分,以便多个映射器可以处理文件。另外我一直在阅读输入文件不会被拆分,除非它们是 5gb,我的文件不是那么大,所以这是否意味着它们只会被一个实例处理?

我的另一个问题可能看起来相对愚蠢,但是否可以使用 emr+streaming 并在 s3 以外的某个地方输入?必须从 CDN 下载日志,然后将它们上传到我的 s3 存储桶以在它们上运行 mapreduce,这似乎是多余的。现在我让它们下载到我的服务器然后我的服务器将它们上传到s3,有没有办法切断中间人并让它直接进入s3,或者从我的服务器上运行输入?

0 投票
1 回答
8087 浏览

hadoop - 如何在hive中设置mapreduce任务的数量等于1

我尝试在蜂巢中关注-

尽管将最大数量和减少任务的数量设置为 1,但我看到生成了 2 个映射减少任务。请看下文——

0 投票
7 回答
17950 浏览

amazon-ec2 - 在 AWS EC2 上调度作业

我有一个在 AWS EC2 上运行的网站。我需要创建一个生成站点地图文件并将文件上传到各种浏览器的夜间作业。我正在 AWS 上寻找允许此功能的实用程序。我考虑了以下几点:

1) 向 Web 服务器生成一个请求,触发它执行此任务

  • 我不喜欢这种方法,因为它占用了服务器线程并在主机上使用 cpu 周期

2)在运行Web服务器的机器上创建一个cron作业来执行这个任务

  • 同样,我不喜欢这种方法,因为它需要 cpu 周期远离 Web 服务器

3)创建另一个EC2实例并设置一个cron作业来运行任务

  • 这解决了 Web 服务器资源问题,但为什么要为额外的 EC2 实例付费以运行小于 5 分钟的作业呢?浪费钱!

还有其他选择吗?这是 ElasticMapReduce 的工作吗?

0 投票
1 回答
162 浏览

amazon-web-services - 使用 Karmasphere Analyst 和 Amazon Elastic MapReduce 设置 jobconf 参数

Karmasphere Analyst profiler 建议我设置一些 jobconf 参数,例如 mapred.map.output.compression.codec=org.apache.hadoop.io.compress.LzoCodec。但我不知道在哪里设置这些,我在 Karmasphere Analyst 文档中找不到它。

我尝试在 Access->Configuration->Extra Settings 中进行设置,但似乎没有任何效果。我还尝试在“新云连接”窗口中将其放在“附加参数”字段中(作为 JSON 字符串,{mapred.map.output.compression.codec=org.apache.hadoop.io.compress.LzoCodec} ),但这会导致静默失败,并且作业流程没有启动。

谢谢你的帮助!

0 投票
1 回答
9795 浏览

apache-pig - 如何在 Apache Pig 上强制执行正确的数据类型?

由于数据类型错误,我无法对一袋值求和。

当我加载一个 csv 文件时,其行如下所示:

使用以下内容:

所有字段似乎都加载得很好,并且类型正确,如“describe”命令所示:

每当我使用以下命令执行 SUM 时:

并存储或转储内容,mapreduce 过程失败并出现以下错误:

引起我注意的一行是:

这让我相信提取函数没有将字节字段转换为所需的数据类型(长)。

有没有办法强制提取函数转换为正确的数据类型?如何在无需对所有记录执行 FOREACH 的情况下转换值?(将时间转换为 unix 时间戳并尝试查找 MIN 时会发生同样的问题。我绝对想找到一个不需要不必要预测的解决方案)。

任何指针将不胜感激。非常感谢你的帮助。

问候,豪尔赫 C.

PS 我在 Amazon 弹性 mapreduce 服务上以交互模式运行它。

0 投票
0 回答
618 浏览

hadoop - 运行全面的 hadoop 作业时出现 OutOfMemory 错误

我在 Amazon Elastic MapReduce 上运行一个 hadoop 作业,并且不断收到 OutOfMemory 错误。诚然,这些值比大多数 MapReduce 值大一点,但似乎即使我大幅减小大小,它仍然会发生。这是堆栈跟踪:

我不确定要显示什么代码,因为此堆栈跟踪完全超出了我的代码范围。版本是hadoop 0.20.205

有没有办法配置reducer一次读取更少的值?不应该根据可用内存自动处理吗?

0 投票
1 回答
779 浏览

hadoop - hadoop 将 \r\n 转换为 \n 并打破 ARC 格式

我正在尝试使用 hadoop 流解析来自 commoncrawl.org 的数据。我设置了一个本地 hadoop 来测试我的代码,并有一个使用流式 ARCfile 阅读器的简单 Ruby 映射器。当我自己调用我的代码时

它按预期工作。

似乎 hadoop 会自动看到该文件具有 .gz 扩展名并在将其交给映射器之前对其进行解压缩 - 但是在这样做的同时它将流中的 \r\n 换行符转换为 \n。由于 ARC 依赖于标题行中的记录长度,因此更改会破坏解析器(因为数据长度已更改)。

为了仔细检查,我改变了我的映射器以期望未压缩的数据,并做了:

它有效。

我不介意 hadoop 自动解压缩(尽管我可以很高兴地处理流 .gz 文件),但如果它确实需要它以“二进制”解压缩而不进行任何换行转换或类似操作。我相信默认行为是将解压缩的文件提供给每个文件一个映射器,这是完美的。

我怎样才能要求它不要解压缩 .gz (重命名文件不是一个选项)或让它正确解压缩?如果可能的话,我宁愿不使用必须装在罐子里的特殊 InputFormat 类。

所有这些最终都将在 AWS ElasticMapReduce 上运行。

0 投票
3 回答
1150 浏览

hadoop - Amazon Elastic Map Reduce 是否为每个实例运行一个或多个映射器进程?

我的问题是:我应该自己关心映射器中的多处理(从标准输入读取任务然后将它们分配给工作进程,将结果组合到主进程并输出到标准输出)还是 Hadoop 会自动处理它?

我在 Hadoop Streaming 文档和 Amazon Elastic MapReduce 常见问题解答中都没有找到答案。

0 投票
1 回答
696 浏览

hadoop - 在 Amazon MapReduce 上调用已编译的二进制文件

我正在尝试对 Amazon Elastic MapReduce 进行一些数据分析。映射器步骤是一个 python 脚本,其中包括对名为“./formatData”的已编译 C++ 二进制文件的调用。例如:

我可以在 Amazon EMR 上调用这样的二进制可执行文件吗?如果是这样,我将在哪里存储二进制文件(在 S3 中?),我应该在什么平台上编译它,以及我如何确保我的映射器脚本可以访问它(理想情况下它会在当前工作目录中)。

谢谢!