如何在Hadoop mapreduce中处理负载均衡?我正在编写一个分布式应用程序,其中服务器根据基准测试、可用内存、CPU内核数量、CPU使用情况、可用gpu数量/使用情况将作业分发给工作节点。我对mapreduce不是很有经验,并在apache的网站上阅读了一些文档,但我仍然不确定如何去解决这个问题。我能不能通过基准计算得到所有这些信息然后通过算法动态地分割输入?
谢谢!
MapReduce系统的性能强烈依赖于均匀的数据分布。Apache MapReduce框架使用一种简单的方法来分配工作负载,并为每个reducer分配相同数量的集群。
负载不平衡增加了处理时间,甚至由于reducer任务的高运行时复杂性而被放大。需要一种自适应负载平衡策略来解决基于给定成本模型估计分配给reducer的任务成本的问题。
"MapReduce是一种用于处理和生成大型数据集的编程模型和相关实现"摘自MapReduce论文摘要。
正如你在评论中所说,看起来你的项目不是数据密集型的,而是计算密集型的,因此我认为MapReduce不是你需要使用的工具。