我已经在Hive中实现了一个任务。目前在我的单节点集群上运行良好。 现在我计划将它部署到AWS上。
我对AWS一无所知。如果我想要部署它,那么应该选择Amazon EC2还是Amazon EMR?
我想提高任务的性能。哪种更好、可靠,适合我?如何接近它们?我听说我们还可以将我们的虚拟机设置注册为在AWS上的设置。这是否可能?
请尽快给我建议。
非常感谢。
我已经在Hive中实现了一个任务。目前在我的单节点集群上运行良好。 现在我计划将它部署到AWS上。
我对AWS一无所知。如果我想要部署它,那么应该选择Amazon EC2还是Amazon EMR?
我想提高任务的性能。哪种更好、可靠,适合我?如何接近它们?我听说我们还可以将我们的虚拟机设置注册为在AWS上的设置。这是否可能?
请尽快给我建议。
非常感谢。
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在最新版本的Hadoop组件方面相当落后,有些甚至完全缺失。这是使用其他发行版的主要原因。例如,如果您想要使用HBase,它不在EMR中,但现在已经加入了。今天,Spark在EMR中也不存在。EMR通常会滞后。
话虽如此,如果您没有使用最新和最棒的功能,请选择EMR。