我已经将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
答案 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会默认在同一主机上运行多个映射器/减速器,每个可用核心运行一个映射器/减速器。