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