Hadoop中的mapred进程是多线程的吗?

时间:2013-05-01 22:33:22

标签: hadoop apache-pig

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

然而,我有点惊讶地发现其中一些个别进程的CPU使用率超过100%有时会达到1000%以上。 mapreduce默认为多线程吗?这可能与猪本身有关吗?

我在网上找到的所有信息都是关于某个设置的信息(mapred.map.runner.class),但无论如何这似乎都没有设置为MultiThreaded。

感谢。

PID用户PR NI VIRT RES SHR S%CPU%MEM TIME + COMMAND
 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 20 0 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:35.27 java
 2239 mapred 20 0 53.5g 5.8g 12m S 82.6 9.3 3:54.47 java

1 个答案:

答案 0 :(得分:2)

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

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