问题标签 [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.

0 投票
0 回答
329 浏览

amazon-web-services - AWS Elastic Mapreduce 优化 Pig 作业

我正在使用 boto 2.8.0 在存储在 S3 中的大型日志文件上创建 EMR 作业流。我对 Elastic Mapreduce 比较陌生,并且正在了解如何正确处理此问题的工作流。

有问题的日志文件存储在 s3 中,其键对应于它们从日志服务器发出的日期,例如:/2013/03/01/access.log. 这些文件非常非常大。我的 mapreduce 作业运行一个 Apache Pig 脚本,它只检查存储在日志文件中的一些 uri 路径并输出与我们的业务逻辑相对应的通用计数。

我在 boto 中的客户端代码将日期时间作为 cli 的输入,并为每个需要的日期安排一个带有PigStep实例的工作流。因此,传递类似的东西python script.py 2013-02-01 2013-03-01会迭代超过 29 天的 datetime 对象,并使用 s3 的相应输入键创建 pigsteps。from_date这意味着生成的工作流可能有很多很多步骤,在和之间的时间增量中每天一个to_date

我的问题是我的 EMR 工作流程非常缓慢,几乎是荒谬的。它已经运行了一个晚上,甚至还没有完成该示例集的一半。我在创建许多这样的工作流程步骤时有什么问题吗?我是否应该尝试为不同的键概括猪脚本,而不是在客户端代码中对其进行预处理并为每个日期创建一个步骤?这是在 Elastic Mapreduce 上寻找优化的可行地方吗?值得一提的是,一项类似的工作需要将几个月的可比数据传递给 AWS elastic-mapreducecli ruby​​ 客户端大约需要 15 分钟才能执行(这项工作是由同一个 pig 脚本推动的。)

编辑

不得不提的是,作业被安排在两个 m1.small 类型的实例上,诚然,这本身可能就是问题所在。

0 投票
2 回答
2496 浏览

hadoop - 将 snappy 压缩文件加载到 Elastic MapReduce

我在 S3 中有一堆经过快速压缩的服务器日志,我需要使用 Elastic MapReduce 上的流处理它们。我如何告诉 Amazon 和 Hadoop 日志已经压缩(在它们被拉入 HFS 之前!),以便可以在发送到流式映射器脚本之前对其进行解压缩?

我能找到的唯一文档是:http: //docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/HadoopDataCompression.html#emr-using-snappy ,它似乎指的是中间压缩,而不是文件当它们到达 HFS 时被压缩。

顺便说一句,我主要在 python 中工作,所以如果你有 boto 的解决方案,那就加分吧!

0 投票
1 回答
652 浏览

python - 使用 python 脚本加载地图数据类型列作为使用 hive 的 reducer

在 Hive 表的一列中,我想存储键值对。Hive 的复杂数据类型映射支持该构造。

(这只是我想要做的一个玩具示例,我还有更多列要像这样压缩)

所以我创建了一个这样的表:

然后我尝试使用代码中描述的reducer加载地图列:time_map的结构看起来像:{“min”:time,“max”:time,“average”:time,“total”:时间}

但我收到这样的错误:

如何使用我的 python reducer 加载到地图列?

0 投票
2 回答
1079 浏览

hadoop - Hadoop数据局部性,反直觉观察

谁能帮助我理解以下与我对 Hadoop 数据局部性的理解相反的观察。

具有 3 个节点的 Hadoop 集群:

主人:10.28.75.146

从站1:10.157.6.202

从机2:10.31.130.224

成功运行任务。从作业控制台:

我们知道 224 节点正在处理 /input/22.seq 数据。通过命令:

22.seq 适合一个小于默认 HDFS 块大小 (64MB) 的块,并且不会复制到其他节点。

问题:既然22.seq不是224节点本地的,为什么Hadoop分配224节点在202上远程处理数据?

注意:这也不例外。我注意到许多数据文件是远程获取的,并且在两个节点的 eth0 上观察到巨大的网络流量。我期望两个节点之间的流量接近于零,因为我所有的数据文件都小于 64MB,并且数据应该在本地处理。

仅供参考:这是在亚马逊的 AWS EMR 上观察到的。

0 投票
1 回答
1625 浏览

php - OpenEMR 和 HL7

我对 EMR 和 HL7 非常陌生。

我有单独的 Joomla CMS 和 OpenEMR 安装。我需要我的 JoomlaCMS 将 HL7 消息发送到 OpenEMR 并通过 Internet 在 HL7 中接收响应。

我不知道从哪里开始,有没有办法做到这一点。

我的其他问题: 是否有任何在线 EMR 服务接收和发送 HL7 消息?PHP 可以创建和解析 HL7 消息吗?因为我看到https://github.com/pear/Net_HL7只创建 hl7 消息而不解析它。

0 投票
0 回答
279 浏览

performance - EMR(Elastic Map Reduce)与非EMR(EC2-Hadoop)

就性能而言,在 EMR 或某些安装了 hadoop 的 EC2 实例上运行作业之间有什么区别。我知道关键区别在于使用 EMR 运行作业要容易得多,但是您知道这两者的性能有什么不同吗?让我说性能是指从启动工作到完成它们所花费的时间。

0 投票
2 回答
1177 浏览

hadoop - 弹性 MapReduce 的后挂钩

我想知道是否有 EMR(Elastic MapReduce)的后期处理示例?我想要实现的是在亚马逊的 Hadoop 完成工作后立即向一群人发送电子邮件。

0 投票
1 回答
1225 浏览

hadoop - 如何将 EMR 生成的 S3 上的小文件与数千个 reducer 合并

我的 cascalog EMR 作业在 S3 存储桶上生成了数千个小文件。它生成的文件数量与我使用的减速器数量相同。转储所有这些小文件需要几分钟时间。我想知道是否有办法在 S3 上连接它们以便我可以快速转储它们?

谢谢

0 投票
0 回答
1413 浏览

hadoop - s3distcp fails on CDH 4.2

I am trying to run s3distcp as to merge a lot of small (200-600KB) files from S3 to HDFS.

I am running Hadoop on CDH 4.2 over Ubuntu.

To be specific: Hadoop 2.0.0-cdh4.2.0 Subversion file:///var/lib/jenkins/workspace/generic-package-ubuntu64-12-04/CDH4.2.0-Packaging-Hadoop-2013-02-15_10-38-54/hadoop-2.0.0+922-1.cdh4.2.0.p0.12~precise/src/hadoop-common-project/hadoop-common -r 8bce4bd28a464e0a92950c50ba01a9deb1d85686

I have previously solved all dependencies to aws-java-sdk-1.4.1.jar and s3distcp.jar, by copying them into the Hadoop classpath. Libsnappy1 is also installed.

But when I run:

I get the following error stack:

Is there something else I should try? Is there a problem I cannot see with the regex?

0 投票
1 回答
1888 浏览

hadoop - 无法使用自定义可执行文件运行 EMR Hadoop Streaming 作业

编辑:

查看 namenode 日志,我注意到定期引发异常。它可能是相关的吗?

我们制作了自定义二进制文件来执行 map 和 reduce,使用常识“cat 文件 | map | sort | reduce > output”模式测试了它们的正确操作。我们确保静态编译二进制文件以引入尽可能多的依赖项,并且我们还通过手动将二进制文件上传到主服务器来确认二进制文件在 Amazon 的 EMR AMI 上运行。如果相关,我们选择的语言是 Haskell,编译结果是一个简单的、本机的、二进制可执行文件。

以最简单的情况为例:

这项工作确实开始了,但它卡在地图 0% 阶段并且没有让步。它不会从那里继续前进,并且没有任何日志似乎表明任何有用的东西。由于在 600 秒内“未报告”,每个地图任务都会被杀死。每个映射器都显示如下状态作为其状态,同时显示 0% 完成:

计数器部分显示了从 s3n 读取的类似 17.5KB 的内容。

如果我们现在将作业修改为以下内容以进行测试:

然后映射器阶段完成 100%,但减速器引发异常:

令人沮丧的是,例如,在相同类型的 EMR 集群上运行 hive 似乎在 S3 上创建新的外部映射表和文件时没有任何问题。

尝试了几个想法后,如果有人能给我们正确的方向以使我们的设置正常工作,我将不胜感激。

谢谢你,OA