RICH-ATONE

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

posted on 2021-03-26 14:57  RICH-ATONE  阅读(182)  评论(0编辑  收藏  举报

导航