yarn和mapreduce资源配置

4xrmg8kj  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(383)

我目前运行的是一个伪分布式hadoop系统。该机器有8个内核(16个虚拟内核),32 gb ram。
我的输入文件在几mb到~68 mb之间(gzip日志文件,一旦它们达到>60mb,就会上传到我的服务器,因此没有固定的最大大小)。我想在大约500-600个文件上运行一些配置单元作业。
由于输入文件大小不一致,到目前为止我还没有在hadoop中更改blocksize。据我所知,最好的情况是blocksize=input file size,但是如果文件小于blocksize,hadoop会填充该块直到其满吗?输入文件的大小和数量如何影响性能,而不是说一个大的~40gb文件?
我的最佳配置是什么样的?
基于本指南(http://hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp-2-0/)我想到了这个配置:
32gbram,为操作系统预留了2gb,给了我30720mb,可以分配给容器。

yarn.nodemanager.resource.memory-mb=30720

有8个核心,我认为最多10个容器应该是安全的。所以对于每个容器(30720/10)3072MB的ram。

yarn.scheduler.minimum-allocation-mb=3072

对于map任务容器,我将最小容器大小增加了一倍,这将允许最多5个map任务

mapreduce.map.memory.mb=6144

如果我想减少最多3个我分配的任务:

mapreduce.map.memory.mb=10240

使jvm堆大小适合容器:

mapreduce.map.java.opts=-Xmx5120m
mapreduce.reduce.java.opts=-Xmx9216m

你认为这个配置会很好,或者你会改变什么,为什么?

g0czyy6m

g0czyy6m1#

是的,这个配置很好。但我想提及的变化很少。
对于reducer内存,应该是 mapreduce.reduce.memory.mb=10240 (我想这只是一个打字错误。)
还有一个主要的补充,我将建议将是cpu配置。
你应该把

Container Virtual CPU Cores=15

对于减速机,由于您只运行3个减速机,您可以给出

Reduce Task Virtual CPU Cores=5

对于mapper

Mapper Task Virtual CPU Cores=3

将在中并行运行的容器数(reducer或mapper)=min(总ram/mapreduce.(reduce或map).memory.mb,总内核数/(map或reduce)任务虚拟cpu内核数)。
请参考http://openharsh.blogspot.in/2015/05/yarn-configuration.html 详细了解。

相关问题