本资料的计算环境为Hive on MR。计算资源的调整主要包括Yarn和MR。
Yarn资源配置
需要调整的Yarn参数均与CPU、内存等资源有关,核心配置参数如下
内存参数
yarn.nodemanager.resource.memory-mb
一个NodeManager节点分配给Container使用的内存。
该参数的配置,取决于NodeManager所在节点的总内存容量和该节点运行的其他服务的数量。
-- 考虑上述因素,此处可将该参数设置为64G,如下:
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>65536</value>
</property>
核数参数
yarn.nodemanager.resource.cpu-vcores
该参数的含义是,一个NodeManager节点分配给Container使用的CPU核数。
该参数的配置,同样取决于NodeManager所在节点的总CPU核数和该节点运行的其他服务。
-- 此处可将该参数设置为16
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>16</value>
</property>
最大内存
yarn.scheduler.maximum-allocation-mb
该参数的含义是,单个Container能够使用的最大内存。
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>16384</value>
</property>
最小内存
yarn.scheduler.minimum-allocation-mb
该参数的含义是,单个Container能够使用的最小内存。
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
Yarn配置实操
配置文件路径:$HADOOP_HOME/etc/hadoop/yarn-site.xml文件
修改参数
分发该配置文件
重启yarn
MapReduce资源配置
MapReduce资源配置主要包括MapTask的内存和CPU核数,以及Reduce Task的内存和CPU核数
Map Task
内存大小设置
mapreduce.map.memory.mb
单个MapTask申请的container容器内存大小,其默认值为1024。
该值不能超出yarn.scheduler.maximum-allocation-mb和yarn.scheduler.minimum-allocation-mb规定的范围。
该参数需要根据不同的计算任务单独进行配置
在hive中,可直接使用如下方式为每个SQL语句单独进行配置:
set mapreduce.map.memory.mb=2048;
核数设置
mapreduce.map.cpu.vcores
该参数的含义是,单个Map Task申请的container容器cpu核数
其默认值为1。该值一般无需调整。
Reduce Task
内存大小
mapreduce.reduce.memory.mb
该参数的含义是,单个Reduce Task申请的container容器内存大小,其默认值为1024。
不能超出yarn.scheduler.maximum-allocation-mb和yarn.scheduler.minimum-allocation-mb规定的范围
set mapreduce.reduce.memory.mb=2048;
核数设置
mapreduce.reduce.cpu.vcores
该参数的含义是,单个Reduce Task申请的container容器cpu核数。
其默认值为1,该值一般无需调整。