Hadoop调优笔记


1. 编辑日志的存储路径dfs.namenode.edits.dir要与镜像文件的存储路径dfs.namenode.name.dir尽量分开,达到最低写入延迟[放在一起会影响磁盘IO]。

2. HDFS多目录存储。在hdfs-site.xml文件中提前配置好多目录存储,否则更改目录的话需要重启集群。
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///hdp2/dfs/data2,file:///hdp3/dfs/data3,file:///hdp4/dfs/data4</value>
</property>

3. 内存利用率不够

情景:Hive,没有数据倾斜,小文件已经做了合并,开启了JVM重用,IO没有阻塞,内存使用了不到50%,跑的很慢,而且数据量洪峰的时候集群会宕掉。

  • 解决方案:
    1. 内存利用率不够,一般是Yarn的2个配置造成的:单个任务可以申请的最大内存大小和Hadoop集群单个节点可用内存大小。调节这两个参数可以提高集群内存利用率。
      a. 参数:yarn.nodemanager.resource.memory-mb
      表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。
      b. 参数:yarn.scheduler.maximum-allocation-mb
      单个任务可申请的最多物理内存量,默认是8192(MB)。

4. Hadoop宕机

两种情况:

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

5.
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。