hdfs-site.xml调优:
1.dfs.namenode.handler.count=20 * log2(Cluster Size)
比如集群规模为 8 台时,此参数设置为 60
NameNode 有一个工作线程池,用来处理不同 DataNode 的并发心跳以及客户端并发
的元数据操作。对于大集群或者有大量客户端的集群来说,通常需要增大参数
dfs.namenode.handler.count 的默认值 10。设置该值的一般原则是将其设置为集群大小的自然对数乘以 20,即 20logN,N 为集群大小。
当集群很庞大却没有适当调大该值时,namenode和datanode的通信就会被阻塞,太大则会造成资源浪费
yarn-site.xml调优:
1.yarn.nodemanager.resource.memory-mb
表示该节点上 YARN 可使用的物理内存总量,默认是 8192(MB),注意,如果你的节点
内存资源不够 8GB,则需要调减小这个值,而 YARN 不会智能的探测节点的物理内存总量。
2.yarn.scheduler.maximum-allocation-mb
单个任务可申请的最多物理内存量,默认是 8192(MB)
当数据源很大时却没有适当调大该值时,集群会跑得没有预期快,甚至会宕机
Hadoop宕机
1.MR 造成系统宕机
控制 Yarn 同时运行的任务数,和每个任务申请的最大内存。
调整参数:yarn.scheduler.maximum-allocation-mb(单个任务可申请的最多物理内存量,默认是 8192MB)
2.写入文件过量造成 NameNode 宕机
调高 Kafka 的存储大小,控制从 Kafka到 HDFS 的写入速度。高峰期的时候用 Kafka 进行缓存,高峰期过去数据同步会自动跟上。