zoukankan      html  css  js  c++  java
  • Hadoop搭建配置参数调优

    HDFS参数调优参考

    在hdfs-site.xml里面配置:

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

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

    (2)编辑日志存储路径dfs.namenode.edits.dir设置与镜像文件存储路径dfs.namenode.name.dir尽量分开,达到最低写入延迟4.2 YARN参数调优yarn-site.xml

    (3)dfs.datanode.du.reserved预留空间配置方法:

    对于datanode配置预留空间的方法 为:在hdfs-site.xml添加如下配置

     <property>
    
        <name>dfs.datanode.du.reserved</name>
    
        <value>10737418240</value>
    
     </property>

    dfs.datanode.du.reserved的单位为字节,上面的预留空间为10G,预留30G:32212254720 

    预留20G:21474836480 

    参考:https://www.cnblogs.com/felixzh/p/9203251.html

    (4)Hadoop HDFS Datanode多目录配置

    datanode也可以配置成多个目录,每个目录存储的数据不一样。即:数据不是副本。

    <!--  定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割  -->
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>
    file:///export/servers/Hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas
    </value>
    </property>
    
    例如:
    <property>
      <name>dfs.datanode.data.dir</name>
    <value>
    /mnt/disk1/hadoop/hdfs/data,
    /mnt/disk2/hadoop/hdfs/data,
    /mnt/disk3/hadoop/hdfs/data,
    /mnt/disk4/hadoop/hdfs/data,
    /mnt/disk5/hadoop/hdfs/data,
    /mnt/disk6/hadoop/hdfs/data,
    /mnt/disk7/hadoop/hdfs/data,
    /mnt/disk8/hadoop/hdfs/data,
    /mnt/disk9/hadoop/hdfs/data,
    /mnt/disk10/hadoop/hdfs/data,
    /mnt/disk11/hadoop/hdfs/data
    </value>
    </property>

    或者使用软连接

        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/grid/1/hadoop/var/hdfs/data,/grid/2/hadoop/var/hdfs/data,/grid/3/hadoop/var/hdfs/data,/grid/4/hadoop/var/hdfs/data,/grid/5/hadoop/var/hdfs/data,/grid/6/hadoop/var/hdfs/data</value>
            <final>true</final>
        </property>


    查看linux机器如下:

    [hadoop01]$ ll /grid/
    total 0
    lrwxrwxrwx 1 root root 23 Sep 8 2016 0 -> /home/xxx/dev/disk-0
    lrwxrwxrwx 1 root root 23 Jun 25 2016 1 -> /home/xxx/dev/disk-1
    lrwxrwxrwx 1 root root 23 Jun 25 2016 2 -> /home/xxx/dev/disk-2
    lrwxrwxrwx 1 root root 23 Jun 25 2016 3 -> /home/xxx/dev/disk-3
    lrwxrwxrwx 1 root root 23 Jun 25 2016 4 -> /home/xxx/dev/disk-4
    lrwxrwxrwx 1 root root 23 Jun 25 2016 5 -> /home/xxx/dev/disk-5
    lrwxrwxrwx 1 root root 23 Jun 25 2016 6 -> /home/xxx/dev/disk-6

    YARN参数调优yarn-site.xml

    (1)情景描述:总共7台机器,每天几亿条数据,数据源->Flume->Kafka->HDFS->Hive

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

    (2)解决办法:

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

    (a)yarn.nodemanager.resource.memory-mb

    表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。

    (b)yarn.scheduler.maximum-allocation-mb

    单个任务可申请的最多物理内存量,默认是8192(MB)。

    参考:
    https://blog.csdn.net/weixin_36358109/article/details/112866407

  • 相关阅读:
    7进程、线程、协程
    架构
    5oop面向对象编程
    2流程控制
    redis
    1HTML
    3.函数、递归、模块
    2、变量、数据类型、运算符、流程控制
    一个小公司的性能测试工程师应该如何开展工作
    程序代码调优工具perf学习记录
  • 原文地址:https://www.cnblogs.com/-courage/p/14582351.html
Copyright © 2011-2022 走看看