Cloudera Operation
Cloudera Operation
博主推荐阅读:
https://www.cloudera.com/documentation/enterprise/5-15-x/topics/operation.html
一.HDFS调优
二.MapReduc调优
三.YARN调优
1>.NodeManager应用程序日志的保留持续时间(默认3小时,即10800s),推荐值:24小时(即86400s)或更长。
2>.启用日志聚合 yarn.log-aggregation-enable和日志聚合保留期 yarn.log-aggregation.retain-seconds
3>.指定NodeManager在HDFS中存储聚合日志路径(yarn.nodemanager.remote-app-log-dir,默认为:/tmp/logs)和设置HDFS原创目录的名称(yarn.nodemanager.remote-app-log-dir-suffix,默认为logs)
4>.定义聚合日志保留时间(yarn.log-aggregation.retain-seconds,推荐保留7天即可)
5>.我们为操作系统预留10%的内存,分配YARN作业可用总共可用内存(yarn.nodemanager.resource.memory-mb,默认值为8G,也就是说,不管你服务器多大内存,只要你不分配,再多内存也百搭~)
6>.配置最小容器内存 yarn.scheduler.minimum-allocation-mb,关于如何确定容器最小尺寸没有具体规则,都是根据经验来设定的。有网友说如果YARN每个节点上的可用内存小于24G推荐设置为1G,如果高于24G一般设置为2GB(一般来说,每个磁盘和每个核心运行1~2个容器,我实际环境是128G内存,12 * 8T磁盘,32core,由于上面我们分配的可用内存为112G,因此我使用公式112/(12+32)=2,于是我设置我的集群最小容器为2GB)。
7>.配置最大容器内存(yarn.scheduler.maximum-allocation-mb,我们定义的最大容器内存不能超过我们之前配置的yarn.nodemanager.resource.memory-mb的值,但是我们可以配置为和它相同大小)。
8>.Map 任务物理内存分配 (mapreduce.map.memory.mb,对于map任务的大小应该为多大,没有任何硬性的规则,除了它们的大小必须至少等于YARN容器的最小大小外。默认为1G,我这里设置为2G,由于总内存为112GB,因此最多可以跑56个map任务,我们知道这是一种极端的情况,因为有一些MapReduce任务可能没有任何reduce任务)
9>.Reduce 任务物理内存分配 (mapreduce.reduce.memory.mb,对于reduce任务的大小应该为多大,没有任何硬性的规则,除了它们的大小必须至少等于YARN容器的最小大小外。默认为1G,我这里设置为4G,即设置reduce为map任务的2倍)
10>.为map的JVM指定内存大小(mapreduce.map.java.opts,对于JVM堆大小没有一个硬性的原则,一般来说,占据JVM的容器大小的三分之二或者四分之三比较合适。有网友说改值为200MB,建议调大改值,我这里配置为1576MB,这个值大约为map任务容器的75%)
11>.为reduce的JVM指定内存大小(mapreduce.reduce.java.opts,对于JVM堆大小没有一个硬性的原则,一般来说,占据JVM的容器大小的三分之二或者四分之三比较合适。有网友说改值为200MB,建议调大改值,我这里配置为3072MB,这个值大约为reduce任务容器的75%)
12>.配置每个节点的最大虚拟CPU内核数(yarn.nodemanager.resource.cpu-vcores,默认值是8,即默认是8个虚拟内核,如果节点具有多个内核,则需要相应地配置此参数的值,否则YARN将使用8个虚拟内核,无论节点具有多少个CPU内核!推荐将一个物理core虚拟成2个,比如我的物理服务器有32core,但我在配置虚拟内核时指定为64core)
13>.配置每个节点的虚拟内存后,可以配置ResourceManager为每个容器请求的虚拟内存的最小数量(yarn.scheduler.minimum-allocation-vcores,默认值为1,默认即可)
14>.配置每个节点的虚拟内存后,可以配置ResourceManager为每个容器请求的虚拟内存的最大数量(yarn.scheduler.maximum-allocation-vcores,默认值是8,推荐设置和ResourceManager节点的最大虚拟内核数一样大,由于我配置的每个节点的虚拟内核数为64,因此我允许让其获取最大值也为64.)
15>.还可以配置每个map任务的虚拟内核数( mapreduce.map.cpu.vcores,默认值为1)
16>.还可以配置每个reduce任务的虚拟内核数( mapreduce.reduce.cpu.vcores,默认值为1)
17>.
18>.
19>.
20>.
本文来自博客园,作者:尹正杰,转载请注明原文链接:https://www.cnblogs.com/yinzhengjie/articles/10898610.html,个人微信: "JasonYin2020"(添加时请备注来源及意图备注,有偿付费)
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。