我目前在hadoop中使用wordcount应用程序作为基准。我发现cpu的使用率几乎恒定在80-90%左右。我想有一个波动的CPU使用率。是否有任何hadoop应用程序可以给我这个功能?非常感谢。
答案 0 :(得分:2)
我认为没有办法限制或指定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将如何拆分任务,但是每个作业强制一个数字是一个选项。
我希望这有助于您到达目的地。我仍然不太明白你在寻找什么。 :)