`
dajuezhao
  • 浏览: 59787 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Map/Reduce使用杂记

阅读更多

一、硬件环境

1、CPU:Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz

2、内存:2G

3、硬盘:500G

4、网卡:百兆电卡

5、网络:局域网络

6、集群数量:10台机器,1个master,10个slaves(master也做slave了!呵呵)

二、关于同时运行的map和reduce数量。

1、同时运行的数量通过mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum设置。

2、默认的设置都是2,也就是说Avg. Tasks/Node=4

3、关于数量,并非越大越好。通过测试发现,一个合适的值在2-4之间,也就是说Avg. Tasks/Node的值在4-8.当然这个和机器的性能有关系。

4、就我当前的环境,通过测试发现,map和reduce的数量都设置成2速度最快。

三、reduce的数量问题

1、reduce的数量默认是1,mapred.reduce.tasks,配置文件中的描述如下:

The default number of reduce tasks per job. Typically set to 99%
of the cluster's reduce capacity, so that if a node fails the reduces can
still be executed in a single wave.
Ignored when mapred.job.tracker is "local".

2、但是在实际的环境中,reduce的数量还是尽量多一点好,数额建议基本等于集群机器的数量。

3、reduce的数量直接决定输出的结果文件,所以在查看结果的时候可以将结果文件归并查看,命令如下:

hadoop fs -getmerge /jz /root/

4、参数mapred.jobtracker.taskScheduler.maxRunningTasksPerJob,用来控制一个job最大并行tasks数,这个是指在集群最大并行数

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics