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