亚马逊EC2与亚马逊EMR的比较

24

我已经在Hive中实现了一个任务。目前在我的单节点集群上运行良好。 现在我计划将它部署到AWS上。

我对AWS一无所知。如果我想要部署它,那么应该选择Amazon EC2还是Amazon EMR?

我想提高任务的性能。哪种更好、可靠,适合我?如何接近它们?我听说我们还可以将我们的虚拟机设置注册为在AWS上的设置。这是否可能?

请尽快给我建议。

非常感谢。


这不是更多一个系统管理员的问题,而不是一个编程问题吗...? - Eight-Bit Guru
从你问题末尾的“ASAP”来看,也许你应该尝试通过电子邮件向公司的平台支持团队提出问题 ;) - Daniel Dinnyes
3个回答

33

EMR是一组安装了Hadoop(可选包括Hive和/或Pig)并进行配置的EC2实例集合。如果您使用集群运行Hadoop/Hive/Pig作业,EMR是可行的选择。相比于EC2实例,EMR实例会额外花费一点费用。今天在亚马逊上快速核对价格显示,一个小型EC2实例的费用为每小时0.08美元,而一个小型EMR实例的额外费用为每小时0.015美元。

在我看来,完全值得支付这些额外费用,以省去安装和设置Hadoop(以及Hive和Pig)、创建和维护AMI以及使用它带来的烦恼。此外,EMR的Hadoop和Hive版本有一些补丁不可用(至少目前不可用)于Apache Hive。如果您使用EC2,您可能会使用Apache Hadoop和Hive(或许是Cloudera分发),并且无法访问这些补丁(例如原生支持S3或命令如ALTER TABLE my_table RECOVER PARTITIONS)。

参考文献:


EMR和EC2定价 https://aws.amazon.com/emr/pricing/ - Saad

6
我建议您不要尝试部署自己的Hadoop集群,除非您有2-3个月的时间,并且有一个熟练掌握hadoop的专家。Elastic MapReduce可以通过提供预配置的hadoop环境来让您很快地开始。考虑到您只有一个作业,这应该是可以的。

没问题。在我的使用案例中,我想使用SQOOP从MS SQL Server导入数据。我已经创建了一个作业,使用Hive JDBC来处理它。 但是我在MSSQL-SERVER中有大量数据(接近GB级别)。如果我需要每天/每周运行作业,那么从SQL-SERVER每天/每周导入是否有效率。如果我想解决这个问题并将这些数据存储在S3中,那么我该如何在HDFS和S3之间建立链接。(因为Hive表的数据存储在/user/hive/warehouse目录下的HDFS中)。 - Bhavesh Shah

2

一般来说,历史上,EMR在最新版本的Hadoop组件方面相当落后,有些甚至完全缺失。这是使用其他发行版的主要原因。例如,如果您想要使用HBase,它不在EMR中,但现在已经加入了。今天,Spark在EMR中也不存在。EMR通常会滞后。

话虽如此,如果您没有使用最新和最棒的功能,请选择EMR。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接