Loading

为什么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

posted @ 2021-07-20 22:25  想睡觉的人  阅读(282)  评论(0编辑  收藏  举报