1、首先先来了解几个概念
寻址时间:HDFS中找到目标文件block块所花费的时间。
原理:文件块越大,寻址时间越短,但磁盘传输时间越长;文件块越小,寻址时间越长,但磁盘传输时间越短。
2、为什么block不能设置过大,也不能设置过小
如果块设置过大,如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢;另一方面,MapReduce中的map任务通常一次只处理一个块中的数据,如果块过大运行速度也会很慢。
如果设置过小,一方面存放大量小文件会占用NameNode中大量内存来存储元数据,而NameNode的内存是有限的(主要原因),不可取;另一方面块过小,寻址时间增长,导致程序一直在找block的开始位置(MapReduce将起多个进程,带来切换开销)。因此,块适当设置大一些,减少寻址时间,传输一个有多个块组成的文件的时间主要取决于磁盘的传输速度。
3、块大小多少合适
如果寻址时间约为10ms,而传输速率为100MB/s,为了使寻址时间仅占传输时间的1%,我们要将块大小设置约为100MB。默认的块大小128MB。
块的大小:10ms x 100 x 100M/s = 100M,如图
如果增加文件块大小,那就需要增加磁盘的传输速率。HDFS块的大小设置主要取决于磁盘传输速率。
比如,磁盘传输速率为200MB/s时,一般设定block大小为256MB;磁盘传输速率为400MB/s时,一般设定block大小为512MB。
标签:HDFS,传输速率,寻址,时间,设置,128M,磁盘,block From: https://blog.51cto.com/u_15553407/6343210