hadoop3.x yarn 内存配置

说明

yarn 内存默认配置都非常大,nodemanager 默认内存是 8G

访问:http://hadoop1:8088/cluster/scheduler ,如下图:

而我们虚拟机 没这么大的内存,所以要根据 物理内存 ,进行设置,不要超过 物理内存

查看linux内存

通过下面命令查看linux的内存(详细解释点击 链接

free -h

执行结果如下:

解释:

  • total: 内存总数
  • used: 已经使用内存数
  • free: 完全空闲内存
  • shared: 多个进程共享的内存
  • buffers: 用于块设备数据缓冲,记录文件系统metadata(目录,权限,属性等)
  • cached: 用于文件内容的缓冲
  • available:真正剩余的可被程序应用的内存数

由于完全空闲 3.6G,所以分配 yarn内存为 3G,剩余 0.6G 给其他软件用

分配内存

分配 nodemananger 内存

登录 hadoop1

修改 yarn-site.xml

vim /program/hadoop-3.0.3/etc/hadoop/yarn-site.xml

增加下面内容:

<!-- nodemanager最大可用内存,不要超过物理内存 -->
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>3072</value>
</property>

容器内存

每个容器可以申请最小内存,默认1024

<!-- 每个容器可以申请最小内存,默认1024 -->
<property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>1024</value>
</property>

每个容器可以申请最大内存,默认8192,这里改为 3072,不能超过 nodemanager内存

<!-- 每个容器可以申请最大内存,默认8192 -->
<property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>3072</value>
</property>

同步文件

同步到 hadoop2:

rsync -av /program/hadoop-3.0.3/etc/hadoop/*  root@hadoop2:/program/hadoop-3.0.3/etc/hadoop/

同步到 hadoop3:

rsync -av /program/hadoop-3.0.3/etc/hadoop/*  root@hadoop3:/program/hadoop-3.0.3/etc/hadoop/

重启 yarn

登录 hadoop2,执行下面命令:

stop-yarn.sh
start-yarn.sh

查看内存

访问:http://hadoop1:8088/cluster/scheduler ,如下图,内存已经修改成功:


原文出处:http://malaoshi.top/show_1IX2XLev4YRD.html