2013-03-08 28 views
4

如何在Hadoop mapreduce中处理负载均衡?我正在编写一个分布式应用程序,其中服务器根据基准测试,可用内存,CPU内核数量,CPU使用情况,可用/可用GPU数量将作业分配给工作节点。我对mapreduce不是很熟悉,并且已经阅读了apache网站上的一些文档,但是我仍然不确定如何去解决这个问题。我可以做基准计算并获取所有这些信息,然后通过算法动态分解输入吗?如何在Hadoop mapreduce中处理负载均衡?

谢谢!

+0

我觉得这个链接可能会有所帮助: http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/ – Alper 2013-03-08 07:59:19

+0

谢谢关于mapreduce的信息丰富,但我们不会处理大量的数据本身,文章只提到平衡存储。我想知道是否可以根据从节点的功能动态平衡负载:将运行的基准标记,CPU速度/内核数量/ CPU使用率,num GPU /使用率,可用主内存。 – user2146783 2013-03-08 08:10:34

回答

0

“MapReduce是一个编程模型和相关的处理和生成大型数据集的实现”的摘录摘录的MapReduce论文。

正如你在评论中所说的那样,看起来你的项目不是数据密集型的,而是计算密集型的,因此我认为MapReduce不是你需要使用的工具。

0

MapReduce系统的性能在很大程度上取决于数据分布的均匀性。 Apache MapReduce框架使用一种简单的方法分配工作负载并为每个Reducer分配相同数量的簇。

负载不平衡会增加处理时间,甚至会由于减速机任务的高运行时复杂性而放大。需要采用自适应负载平衡策略来解决根据给定成本模型估算分配给减速器的任务成本的问题。