为什么HDFS的block不能设置太大或太小
前言
寻址时间为传输时间的1%时,则为最佳状态。
一、HDFS 块设置的比较小会增加寻址时间,并且每个块在namenode都会存储一份元数据,增加namenode开销
一个大文件会被分为多个block存在hdfs中,而每个block对于磁盘来说就是一个文件。
该hdfs的大文件寻址时间是等于磁盘寻找每个block文件的总和。
而本地磁盘每寻找一个block文件都要寻址一次,每次寻址时间都差不多。所以block数量越多,寻址次数越多,则把该大文件的所有block寻找出来的总时间就越多。
二、HDFS块设置的比较大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢。
我们知道,hdfs存储大文件会把该文件分为多个块。
在mapreduce中,一个mapreduce程序要处理该文件,每个map都是一个客户端,但每个map都只分别下载一个block,对于整个mapreduce程序来说,下载该文件的时间就是下载一个块的时间。当block size比较小时,那么对于整个mapreduce来说,下载这个文件的时间就会很小。
再比如,本来存储空间只有8T,但是要把10T的数据存进去,就会导致存不进去,就会一直在寻找合适的位置来存储这10T数据。
总结
HDFS块的大小设置主要取决于磁盘传输速度
原文链接:https://blog.csdn.net/qq_36951116/article/details/102475331