与Amazon Elastic Mapreduce中的Job执行速度相关

时间:2012-05-04 06:04:26

标签: amazon-emr

我的任务是 1)最初我想使用SQOOP将数据从MS SQL Server导入HDFS。 2)通过Hive我正在处理数据并在一个表中生成结果 3)包含来自Hive的表的结果再次导出到MS SQL SERVER。

我想使用Amazon Elastic Map Reduce执行所有这些操作。

我从MS SQL Server导入的数据非常大(一个表中大约有5,00,000个条目。就像我明智的那样,我有30个表)。为此我在Hive中编写了一个只包含查询的任务(并且每个查询都使用了大量的连接)。因此,在我的单台本地机器上性能非常差(完全执行需要大约3小时)。

我希望尽可能减少这段时间。为此,我们决定使用Amazon Elastic Mapreduce。目前我使用的是3 m1.large实例,但我的本地机器性能仍然相同。

为了提高性能,我需要使用多少个实例? 我们使用的实例数是自动配置的,还是我需要在提交JAR执行时指定?因为我使用两台机器的时间是一样的。

还有其他方法可以提高性能或仅增加实例数量。或者我在执行JAR时做错了什么?

请指导我完成这项工作,因为我对亚马逊服务器并不多。

感谢。

1 个答案:

答案 0 :(得分:2)

您可以尝试Ganglia,它可以使用引导操作安装在您的EMR群集上。这将为您提供有关群集中每个节点性能的一些指标,并可帮助您优化以获得正确大小的群集: http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_Ganglia.html

如果您在本地计算机上使用EMR Ruby客户端,则可以设置SSH隧道以允许您在Firefox中查看神经网络界面(您还需要按照以下{{3}设置FoxyProxy })