Hadoop 参数调优及相关面试题

一、HDFS 参数调优 hdfs-site.xml

       NameNode 有一个工作线程池,用来处理不同 DataNode 的并发心跳以及客户端并发的元数据操作。对于大集群或者有大量客户端的集群来说,通常需要增大参数 dfs.namenode.handler.count 的默认值10。设置该值的一般原则是将其设置为集群大小的自然对数乘以20,即20logN,N为集群大小。

dfs.namenode.handler.count=20 * log2(Cluster Size),比如集群规模为8台时,此参数设置为60

二、YARN 参数调优 yarn-site.xml

面试题 1:

情景描述:总共 20 台机器,每天几亿条数据,数据流向:数据源 —> Flume —> Kafka —> HDFS —> Hive

面临问题:数据统计主要用 HQL ,没有数据倾斜,小文件已经做了合并处理,开启的 JVM 重用,而且 IO 没有阻塞,内存用了不到50%。但是还是跑的非常慢,而且数据量洪峰过来时,整个集群都会宕掉,基于这种情况有没有优化方案。

解决办法:内存利用率不够。这个一般是Yarn的2个配置造成的,单个任务可以申请的最大内存大小,和Hadoop单个节点可用内存大小。调节这两个参数能提高系统内存的利用率。

  • yarn.nodemanager.resource.memory-mb:表示该节点上YARN可使用的物理内存总量,默认是 8192(MB),注意,如果你的节点内存资源不够 8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。
  • yarn.scheduler.maximum-allocation-mb:单个任务可申请的最多物理内存量,默认是8192(MB)。

面试题 2:

Hadoop宕机

  • M造成系统宕机:此时要控制Yarn同时运行的任务数,和每个任务申请的最大内存。调整参数:yarn.scheduler.maximum-allocation-mb(单个任务可申请的最多物理内存量,默认是 8192MB)
  • 写入文件过量造成 NameNode 宕机:那么调高 Kafka 的存储大小,控制从 Kafka 到 HDFS 的写入速度。高峰期的时候用 Kafka进行缓存,高峰期过去数据同步会自动跟上。

猜你喜欢

转载自blog.csdn.net/S_Alics/article/details/108530326
今日推荐