使用hadoop的高性能机器的成本效益

nwsw7zdq  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(460)

我刚刚阅读了一些关于hadoop的优秀文档。hadoop相对于其他计算昂贵的数据处理方法(例如异构计算)的一个主要优势是它的可伸缩性。它利用了大量成本适中的硬件,而不是任何一台功能强大但价格昂贵的机器。
假设我们可以选择使用高性能但昂贵的机器进行hadoop计算。hadoop是否能够有效地利用这些昂贵的资源;它是否会自动利用额外的ec2计算单元,还是您必须自己进行并行编程?机器的性能提高了多少?有没有一种方法可以量化更多ec2的价格带来的性能提升?

h9a6wy2h

h9a6wy2h1#

hadoop框架会在多个内核可用时自动利用它们。您不必自己进行并行编程,这实际上是hadoop的卖点之一:只需编写一次作业,而不必担心线程同步逻辑,然后根据集群的配置,它将尽可能多地使用所有内核。
例如,假设您有一个作业在一个多TB的数据集上运行,在计算拆分之后,需要运行100个任务。现在,如果您想在10个m1.small节点(只有1个核心)上运行作业,那么集群的容量将是一次10个任务(每个节点1个任务)。但是,如果您想在10个m1.large节点(2 x 2个核心)上运行它,那么一次将有40个任务的容量,因此您的作业将比使用相同数量的m1.small的作业快大约4倍,因为它将利用额外的核心。
另外,我听说有人在hadoop上使用cuda(这里有一些信息),amazon有一些集群gpu示例,所以在这种情况下,您也可以利用gpu。
底线是,当使用hadoop时,你应该根据内核的数量而不是机器的数量来推理。显然,您希望找到一个好的折衷方案,我在过去见过一个集群,其中每个节点都有很多核心,但磁盘i/o不是很好,因此这在集群中造成了很多争用,我们必须减少每个节点的最大任务数(您可以通过参数在hadoop配置中控制) mapred.tasktracker.map.tasks.maximum 以及 mapred.tasktracker.reduce.tasks.maximum ).
我个人发现m1.xlarge示例在一些hadoop集群中工作得非常好,而高cpu的示例对我来说造成了太多的磁盘争用。

相关问题