zoukankan      html  css  js  c++  java
  • Hadoop常用参数调优

    一、HDFS

    hdfs-site.xml

    <!-- NameNode有一个工作线程池,用来处理不同DataNode的并发心跳以及客户端并发的元数据操作。对于大集群或者有大量客户端的集群来说,通常需要增大参数-->
    <property>
      <name>dfs.namenode.handler.count</name>
      <value>10</value>
      <description>The number of server threads for the namenode.</description>
    </property>

    经验公式

    dfs.namenode.handler.count=20 * log2(Cluster Size) ,

    比如集群规模为8台时,此参数设置为20 * log2(8) = 60

    二、Yarn

    当集群内存占用率是50%左右,但是任务跑的很慢,高峰期还会挂掉,一般是内存利用率不高可从以下参数着手

    yarn-site.xml

    <!-- 表示该节点上YARN可使用的物理内存总量-->
      <property>
        <description>Amount of physical memory, in MB, that can be allocated 
        for containers.</description>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>8192</value>
      </property>
    <!-- 单个任务可申请的最多物理内存量-->
      <property>
        <description>The maximum allocation for every container request at the RM,
        in MBs. Memory requests higher than this will throw a
        InvalidResourceRequestException.</description>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>8192</value>
      </property>

    三、Hadoop宕机

    3.1MR造成系统宕机

    此时要控制Yarn同时运行的任务数,和每个任务申请的最大内存,即yarn.scheduler.maximum-allocation-mb。

    3.2因为写入文件过多NameNode宕机

    启用Kafka,调高Kafka的存储大小,控制从Kafka到HDFS的写入速度。

  • 相关阅读:
    Java--泛型
    Java--文档注释
    Java--网络编程
    Java--序列化
    Java--多线程编程
    Java--ConcurrentHashMap原理分析
    HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
    面向接口编程详解
    面向接口编程
    base64 数据加密
  • 原文地址:https://www.cnblogs.com/yangxusun9/p/12577464.html
Copyright © 2011-2022 走看看