AWS Elastic Mapreduce优化Pig作业

时间:2013-03-19 13:33:01

标签: amazon-web-services apache-pig boto emr

我使用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天的日期时间对象,并使用s3的相应输入键创建猪圈。这意味着生成的作业流可以包含许多步骤,在from_dateto_date之间的timedelta中每天都有一个步骤。

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

修改

忽略了,工作被安排在两个类型为m1.small的实例中,这无疑本身就是问题所在。

0 个答案:

没有答案