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
(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