对于参数的修改,Ambari基本都是在集群的网页上面修改即可,以Yarn组件为例,单击右边需要更改参数的组件Yarn,参数修改都是在对应组件的CONFIGS里面。修改配置的地方对应的就是在SETTING以及ADVANCED中,如下所示。
当要修改具体的参数的时候,主要分两种情况,第一种对于参数原本就在网页设置了初始值的,只需要在CONFIGS页面的搜索栏直接搜索、修改即可,例如修改Yarn中的yarn.nodemanager.resource.cpu-vcores,只需要在搜索框搜索“yarn.nodemanager.resource.cpu-vcores”,单击修改按钮,设置对应的参数即可。
第二种对于原本页面上没有设置初始值的参数,例如yarn.nodemanager.numa-awareness.enabled这一参数,就需要在对应组件的Custom yarn-site中手动添加(其余组件需要手动添加的也是在对应的Custom ***-site文件中)。
具体的各个组件的参数设置如下表所示。
组件 |
参数名 |
推荐值 |
修改原因 |
---|---|---|---|
Yarn ->NodeManager Yarn ->ResourceManager |
ResourceManager Java heap size |
1024 |
修改JVM内存大小,保证内存水平较高,减少GC的频率。
说明:
非固定值,需要根据GC的释放情况来调大或调小Xms及Xmx的值。 |
NodeManager Java heap size |
1024 |
||
Yarn ->NodeManager |
yarn.nodemanager.resource.cpu-vcores |
鲲鹏计算平台48核环境推荐值48。 |
可分配给Container的CPU核数。 |
Yarn ->NodeManager |
yarn.nodemanager.resource.memory-mb |
与实际数据节点物理内存总量相等。 |
可分配给Container的内存。 |
Yarn ->NodeManager |
yarn.nodemanager.numa-awareness.enabled |
True |
NodeManager启动Container时的Numa感知。 |
Yarn ->NodeManager |
yarn.nodemanager.numa-awareness.read-topology |
True |
NodeManager的Numa拓扑自动感知。 |
MapReduce2 |
mapreduce.map.memory.mb |
7168 |
一个Map Task可使用的内存上限。 |
MapReduce2 |
mapreduce.reduce.memory.mb |
14336 |
一个Reduce Task可使用的资源上限。 |
MapReduce2 |
mapreduce.job.reduce.slowstart.completedmaps |
0.35 |
当Map完成的比例达到该值后才会为Reduce申请资源。 |
HDFS ->NameNode |
NameNode Java heap size |
3072 |
修改JVM内存大小,保证内存水平较高,减少GC的频率。
说明:
非固定值,需要根据GC的释放情况来调大或调小Xms及Xmx的值。 |
NameNode new generation size |
384 |
||
NameNode maximum new generation size |
384 |
||
HDFS ->DataNode |
dfs.datanode.handler.count |
512 |
DataNode服务线程数,可适量增加。 |
HDFS ->NameNode |
dfs.namenode.service.handler.count |
32 |
NameNode RPC服务端监测DataNode和其他请求的线程数,可适量增加。 |
HDFS ->NameNode |
dfs.namenode.handler.count |
1200 |
NameNode RPC服务端监测客户端请求的线程数,可适量增加。 |
TEZ |
tez.am.resource.memory.mb |
7168 |
等同于yarn.scheduler.minimum-allocation-mb,默认7168。 |
TEZ |
tez.runtime.io.sort.mb |
1892MB |
设置为40%*hive.tez.container.size,一般不超过2G。 |
TEZ |
tez.am.container.reuse.enabled |
true |
Container重用开关。 |
TEZ |
tez.runtime.unordered.output.buffer.size-mb |
537 |
10%* hive.tez.container.size。 |
TEZ |
tez.am.resource.cpu.vcores |
10 |
使用的虚拟CPU数量,默认1,需要手动添加。 |
TEZ |
tez.container.max.java.heap.fraction |
0.85 |
基于Yarn提供的内存,分配给Java进程的百分比,默认是0.8,需要手动添加。 |
仅列出需要修改的调优参数。
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.limit.optimize.enable |
TRUE |
hive.exec.parallel |
TRUE |
hive.cbo.enable |
TRUE |
hive.exec.compress.intermediate |
TRUE |
hive.tez.container.size |
7168 |
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.exec.parallel |
TRUE |
hive.cbo.enable |
TRUE |
hive.exec.compress.intermediate |
TRUE |
hive.exec.reducers.max |
576 |
hive.tez.container.size |
5120 |
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.limit.optimize.enable |
TRUE |
hive.exec.parallel |
TRUE |
hive.exec.reducers.max |
376 |
hive.tez.container.size |
7168 |
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.limit.optimize.enable |
TRUE |
hive.exec.parallel |
TRUE |
hive.cbo.enable |
TRUE |
hive.tez.container.size |
6148 |
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.limit.optimize.enable |
TRUE |
hive.exec.parallel |
TRUE |
hive.cbo.enable |
TRUE |
hive.tez.container.size |
8192 |
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.limit.optimize.enable |
TRUE |
hive.exec.parallel |
TRUE |
hive.cbo.enable |
TRUE |
hive.exec.reducers.max |
365 |
hive.tez.container.size |
7168 |
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.limit.optimize.enable |
TRUE |
hive.exec.parallel |
TRUE |
hive.cbo.enable |
TRUE |
hive.exec.reducers.max |
1 |
hive.tez.container.size |
7168 |
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.limit.optimize.enable |
TRUE |
hive.exec.parallel |
TRUE |
hive.tez.container.size |
7168 |
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.limit.optimize.enable |
TRUE |
hive.exec.parallel |
TRUE |
hive.cbo.enable |
TRUE |
hive.exec.reducers.max |
365 |
hive.tez.container.size |
7168 |
参数名 |
参数配置 |
---|---|
hive.map.aggr |
TRUE |
hive.vectorized.execution.enabled |
TRUE |
hive.auto.convert.join |
TRUE |
hive.auto.convert.join.noconditionaltask |
TRUE |
hive.limit.optimize.enable |
TRUE |
hive.exec.parallel |
TRUE |
hive.cbo.enable |
TRUE |
hive.exec.reducers.max |
120 |
hive.tez.container.size |
7168 |