首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >采用Hadoop的高性能计算机的成本效益

采用Hadoop的高性能计算机的成本效益
EN

Stack Overflow用户
提问于 2013-05-27 12:37:43
回答 1查看 126关注 0票数 1

我刚刚阅读了一些关于Hadoop here的优秀文档。看起来Hadoop相对于其他计算昂贵的数据处理方法(例如heterogenous computing)的主要优势之一是它的scalability。它利用了大量价格适中的硬件,而不是任何一台功能强大但价格昂贵的机器。

假设我们可以选择使用高性能但昂贵的机器进行Hadoop计算。Hadoop能够有效地利用这些昂贵的资源吗?它是自动利用额外的EC2 compute units,还是必须自己进行并行编程?机器性能有多大的提升?有没有一种方法可以量化性能收益,以换取更多的EC2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-27 12:58:45

当多个核心可用时,Hadoop框架会自动利用它们。你不必自己做并行编程,这实际上是Hadoop的卖点之一:你只需要写一次作业,而不用担心线程同步逻辑,然后根据你集群的配置,它会尽可能多地使用所有内核。

例如,假设您有一个在数to数据集上运行的作业,该数据集在计算拆分后需要100个任务才能运行。现在,如果您想在10个m1小节点(只有一个核心)上运行您的作业,您的集群将具有一次10个任务的能力(每个节点1个任务)。但是,如果您想在10个m1.large节点(2个x 2核)上运行它,那么您将拥有一次40个任务的容量,因此您的作业将比使用相同数量的m1.mall的情况快大约4倍,因为它将利用额外的内核。

此外,我听说人们在Hadoop上使用CUDA (一些信息here),亚马逊有一些集群图形处理器实例,所以在这种情况下,你可能也可以利用图形处理器。

底线是,在使用Hadoop时,您应该根据内核数量而不是机器数量进行推理。显然,你想要找到一个好的折衷方案,我在过去看到过一个集群,其中每个节点都有很多核心,但磁盘I/O不是很好,所以这在集群中引起了很多争用,我们必须减少每个节点的最大任务数(您可以在Hadoop配置中通过参数mapred.tasktracker.map.tasks.maximummapred.tasktracker.reduce.tasks.maximum来控制)。

我个人发现m1.xlarge实例在一些Hadoop集群中工作得非常好,而高CPU实例对我来说造成了太多的磁盘争用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16766379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档