EC2上的Hadoop与弹性地图减少

时间:2013-03-02 18:31:56

标签: hadoop amazon-web-services

我正在尝试评估这两个选项之间的差异。以下是我能想到的一些利弊:

弹性地图减少=>来自亚马逊的更好支持,无需管理群集,更昂贵(?) EC2 + Hadoop =>更多控制你的hadoop配置,更便宜(?)

我想知道是否有人可能会对EC2 + Hadoop与EMR的性能进行基准测试?大型集群部署的成本是否存在显着差异?还存在哪些其他差异?

3 个答案:

答案 0 :(得分:6)

好吧,管理/监控/维护集群本身并不是一项小任务。 使用EMR,您可以立即使用自定义引导代码配置并启动并运行EMR。 除了做所有这些事情外,EMR还提供了许多其他工具/选项/设施。

在这里,您不必担心在作业完成后终止群集,您可以在EC2 + Hadoop设置中为自己实现一种方法,但EMR会以一种巧妙的方式为您完成此任务。

即使你的工作正在运行,你也有resize the cluster大小的设施!

EMR提供的Pig和Hive还包含一些补丁,可以更轻松地处理S3中的文件。

在这个答案中,即使here你也可能发现EMR占了上风。

答案 1 :(得分:6)

我们在工作中使用这两种方法(EMR和EC2)。

Amar提到的EMR的优点或多或少都是正确的:所以如果你想要简单,它可能是最佳选择。

但还有其他一些考虑因素:

  • EMR的版本远远落后于apache头。它大约是0.20.205而头部是2.X,基本上是3个版本(1.0,1.1,2.0 ..)

hadoop @ domU-12-31-39-07-B9-97:〜$ ll hadoop * .jar lrwxrwxrwx 1 hadoop hadoop 73 Feb 5 12:00 hadoop-examples-0.20.205.jar - > /home/hadoop/.versions/0.20.205/share/hadoop/hadoop-examples-0.20.205.jar lrwxrwxrwx 1 hadoop hadoop 69 Feb 5 12:00 hadoop-test-0.20.205.jar - > /home/hadoop/.versions/0.20.205/share/hadoop/hadoop-test-0.20.205.jar lrwxrwxrwx 1 hadoop hadoop 69 Feb 5 12:00 hadoop-core-0.20.205.jar - > /home/hadoop/.versions/0.20.205/share/hadoop/hadoop-core-0.20.205.jar lrwxrwxrwx 1 hadoop hadoop 70 Feb 5 12:00 hadoop-tools-0.20.205.jar - > /home/hadoop/.versions/0.20.205/share/hadoop/hadoop-tools-0.20.205.jar lrwxrwxrwx 1 hadoop hadoop 68 Feb 5 12:00 hadoop-ant-0.20.205.jar - > /home/hadoop/.versions/0.20.205/share/hadoop/hadoop-ant-0.20.205.jar

  • 直接后果是由于在EMR上运行的旧版本中缺少contrib模块,我不得不重新编码/重构我的Map / reduce程序

  • 您没有太多机会使用非Map / Reduce算法,就像使用M / R的更新版本一样。

  • 灵活地混合和匹配hadoop生态系统的版本。

答案 2 :(得分:0)

我回答了另一个问题,因此可能在这里添加它们以及相关的内容会有所帮助。

有人在评论中提到(人们确实有印象),EMR在ec2节点(spark的基础主/计算节点)之上增加了一些成本,并且仅提供了集群,而事实并非如此。

但是弹性映射减少的重点是elasticscalability部分,这意味着为您的工作提供可扩展性,其中可扩展性不仅是集群中的节点数,而且是诸如p的不同参数>

  1. 通过正在运行的作业动态调整集群的大小

  2. 减少并优化旋转时间,提供有效的重新提交步骤和选项,例如在步骤完成时自动终止

  3. 配置,管理和更新时间。就像小巧的release version一样,它可以自动处理spark / hadoop / other-application版本,为您提供轻松更新需要使用ec2手动进行版本更新的方式。

  4. 生态系统可用性。 EMR生态系统正在增长,它并不能反映您何时启动,但是例如您的需求何时增长(例如,当您开始将其他系统的流处理与flink集成在一起时),那么在启动{{1 }},flinkpig以及更多其他内容,如果您将来需要使用其他东西。

  5. 已经有使用AWS开发工具包实现的库,例如python中的boto3,可帮助您提交步骤,轮询完成情况等,这在需要扩展时非常有用。而且,您将emr与业务流程框架(如气流)集成在一起,可以感知状态,重新提交,通过一条命令旋转管道中的集群。

  6. 例如,在EMR notebook上进行了扩展,它为您提供了一种快速且交互式的方式,可以从Jupiter笔记本电脑提交火花作业,并立即查看结果,作业进度,从而可以提高生产率。

  7. 根据我的经验,这一点最重要,有时,扩展具有更多节点的作业比拥有少量节点的长期运行的作业节省更多的钱。由于添加节点的成本有时会比使用ec2或小型emr集群花费的标准化小时要少。只是分享我的经验,我们曾经工作了3天,我们想通过更大的EMR集群来运行它,从而将其减少到6-8小时,而且成本仍然相同,实际情况却少了一些。