您的位置:首页 > 运维架构

hadoop2.0 做spider下载集群的设置

2015-06-27 22:41 239 查看
hadoop一般设置中,一个map或者reduce用到的内存一般设置是1G内存,但作为下载来用,显然是浪费的,一个下载代码用到的内存顶多几十M,而且因为主要耗时是在网络,因此一个cpu可以做几十个下载进程都没啥问题。hadoop一般一个cpu就只跑一个map/reduce.

因此需要对hadoop的设置进行优化,否则就太浪费了。

最核心的设置如下,这里用的是阿里云的云服务器,4G内存,1个cpu作为任务节点。

1 内存

yarn.nodemanager.resource.memory-mb,所有容器内存:2.4G

yarn.scheduler.minimum-allocation-mb,单个容器最小内存:200M

mapreduce.task.io.sort.mb,jvm缓存占用内存数量,这个一定要注意,默认的是256M,显然过大了,这里设置为:50M

2 cpu

yarn.nodemanager.resource.cpu-vcores,一个cpu虚拟核数: 32

yarn.scheduler.minimum-allocation-vcores,一个container的最小的的虚拟cpu个数:1

这里container可以容纳一个map或者reduce。因为cpu可以随便虚拟个数,因此,主要是内存限制。一个机器可以给所有容器的最大内存 除以 每个container的最小内存 就是一个机器能够容纳的container个数。

然后注意,mapper运行spider,reducer其实是不需要的,因此,设置-numReduceTasks 0或者-reducer NONE则没有reducer程序,mapper的输出直接作为整个作业的输出。

其他至于mapreduce的内存大小啥的,好像都没用,还有堆栈大小啥的,一般设置大一点就行。具体其他设置如下图所示:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: