【问题标题】:Hadoop workloadHadoop 工作负载
【发布时间】:2011-04-22 04:22:24
【问题描述】:

我目前在 hadoop 中使用 wordcount 应用程序作为基准。我发现 CPU 使用率几乎保持在 80-90% 左右。我想有一个波动的CPU使用率。是否有任何 hadoop 应用程序可以为我提供此功能?非常感谢。

【问题讨论】:

  • 是在 Job 运行的时候还是一直这么高?为什么要限制 CPU hadoop 的使用?
  • 我不想限制 cpu hadoop 的使用。我希望 hadoop 的 cpu 使用率在 60-90 或类似的范围之间波动。只有在作业运行时才会这么高。我想要一些可以产生这种波动的工作。

标签: hadoop cpu workload


【解决方案1】:

我认为没有办法限制或指定 hadoop 使用的范围。 Hadoop 将使用可用的 CPU。当我做很多工作时,我总是在 90% 以上的范围内。

控制 CPU 使用率的一种方法是更改​​每个 tasktracker 可以同时运行的映射器/缩减器的最大数量。这是通过 mapred.tasktracker.{map|reduce}.tasks.maximum 设置在$HADOOP_HOME/conf/core-site.xml

当 mapper/reducer 的数量有限时,它将在该 tasktracker 上使用更少的 CPU。

另一种方法是在设置作业时设置mapred.tasktracker.{map|reduce}.tasks 的配置值。这将迫使该工作使用那么多映射器/缩减器。这个数字将在可用的任务跟踪器中分开,因此如果您有 4 个节点并希望每个节点有 1 个映射器,您可以将 mapred.tasktracker.map.tasks 设置为 4。也有可能,如果一个节点可以运行 4 个映射器,它将运行所有 4 个,我不知道 hadoop 将如何拆分任务,但强制每个作业分配一个数字是一种选择。

我希望这能帮助你到达你要去的地方。我还是不太明白你在找什么。 :)

【讨论】:

  • 不,我不想降低 Hadoop CPU 使用率。现在我希望它在 50-90 之间不断变化。就像说使用示例来解释这一点的一种粗略方法是:假设我使用 4 个地图任务(一次 - 就像我可以在 mapred-site.xml 中指定的那样)。并且cpu使用率为90%。在运行时,我可以将其更改为 3 , 2 每分钟并增加它。现在 CPU 将从 90 到 80 再到 70。随着我们的增加,它也会增加。但我不想这样做。以这种方式使用 CPU 的工作负载将是一件好事。清除 ?基本上我想用hadoop作为基准。
  • @sethu:我不相信你可以在工作过程中改变它。如果您构建一些东西来运行您的工作,您可以传递多少任务来执行(通过我的帖子中提到的工作特定设置),您将能够控制每个工作并查看具有不同数量的相同工作的性能tasks 分配给它。你到底想要做什么仍然有点模糊。抱歉,我在这方面太密集了,我错过了一个有意义的部分。
猜你喜欢
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 2017-01-27
  • 1970-01-01
  • 2012-07-19
  • 2021-09-01
相关资源
最近更新 更多