1

我已经将我们的 hadoop 集群的 mapred_map_tasks_max 配置为 6,并且正如预期的那样,我看到在启动 PIG 作业时运行了 6 个 mapred 进程。

然而,看到其中一些单独进程的 CPU 使用率超过 100%,有时甚至达到 1000%+,我有点惊讶。mapreduce 默认是多线程的吗?这可能与猪本身有关吗?

我在网上只能找到一些关于设置的信息(mapred.map.runner.class),但这似乎并没有设置为 MultiThreaded。

谢谢。

PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令
2630 mapred 20 0 53.4g 2.8g 12m S 218.1 4.5 1:17.32 java
2553 mapred 20 0 53.4g 2.8g 12m S 110.7 4.5 1:25.07 java
2636 mapred 53.4g 2.8g 12m S 110.4 4.5 1:11.58 java
2437 mapred 20 0 53.5g 5.6g 12m S 108.1 8.8 3:46.52 java
2353 mapred 20 0 53.5g 5.2g 12m S 101.1 8.3 3:320.2
java 5.8g 12m S 82.6 9.3 3:54.47 java

4

1 回答 1

2

Hadoop 可以使用多线程映射器(请参阅http://kickstarthadoop.blogspot.com/2012/02/enable-multiple-threads-in-mapper-aka.html)。据我所知,猪不支持多线程作业(尽管您可以多线程调用猪服务器... https://issues.apache.org/jira/browse/PIG-240)。

也就是说,默认情况下,Pig 将在同一主机上运行多个映射器/缩减器,每个可用核心一个映射器/缩减器。

于 2013-05-02T01:31:04.037 回答