hdfs block

一、hdfs block的理解

HDFS block是一个逻辑的概念,假如hdfs总的存储空间为1T,block大小为1G,每个文件大小为100M,副本因子为1,则每个文件独占了一个块,此时集群共有10000个block而不是1000个block,因为块是逻辑的概念,并不是物理存在,所以hdfs是支持修改块大小的,并且修改不会开销太大。

二、 hdfs块为什么一般会设计64M或者128M或者更大

1.减少寻道时间,对于hdfs来讲,寻道是一个逻辑的概念,因为真正的寻道发生在磁盘,这里的寻道时间指的就是定位到块的时间。hdfs是存储大数据的,如果块设计的很小,一个文件就会由很多块组成,而HDFS上文件读写的最小单位是块,这样,寻找块的时间就会大大增加,降低读写效率。

2.减少任务数,一个map或者一个reduce都是以一个块为单位处理,如果块很小的话,mapreduce任务数就会非常多,任务之间的切换开销变大,效率降低,同样,如果块很大的话,单个任务就会很慢。

3.减少元数据,在hdfs中,文件块的信息都是元数据,集群运行过程中元数据会都加载进namenode的内存中,如果块很小的情况下,元数据信息就会很多,namenode压力就会很大。实际上当集群规模超过4000台的时候,namenode内存再大都已经没有什么用,因为此时文件数已经太多了。

4.和1很相似,如果数据块很小,一个文件要分成很多块,而每个文件都有副本,当文件删除或者拷贝时,就会导致大量块移动,寻道开销和网络开销都会很大。

5.当集群规模增大的时候,可以适当增加块的大小,比如集群规模大到一定程度可以将块增大到256M,降低相应开销。

6、如何修改hdfs块大小

<property>

	<name>dfs.block.size</name>

	<value>134217728</value>

</property>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值