Hadoop HDFS中的数据块和Map任务的分片
HDFS的数据块
磁盘数据块是磁盘进行数据读/写的最小单位,一般是512字节,
而HDFS中也有数据块,默认为64MB。所以HDFS上的大文件被分为许多个chunk.而HDFS上的小文件(小于64MB)的文件不会占据整个块的空间。
HDFS数据块设置大的原因是减少寻址开销,数据备份也是以块为单位的。
用Hadoop fsck / -files -blocks 命令可以检查HDFS根目录(/)下所有文件,块的健康状况:
Map任务的分片:
为什么推荐Map任务的分片尺寸和HDFS基本块的大小一致为最佳呢?
因为有3个因素:
a.map任务数=输入文件总大小/分片尺寸,所以分片越大,map任务数越少,从而系统执行开销越小。
b.管理分片的开销:显然是分片越大,则分片数量越少,越容易管理。
从a,b因素来看,貌似是分片越大越好。
c.网络传输开销
但是,如果分片太大以至于一个分片要跨越多个HDFS块,则一个map任务必须要由多个块通过网络传输,所以分片大小的上限是HDFS块的大小。
综上所述,map任务时的分片大小设置为HDFS块的大小是最佳选择。
相关推荐
WeiHHH 2020-09-23
tomli 2020-07-26
eternityzzy 2020-07-19
飞鸿踏雪0 2020-07-09
swazerz 2020-06-22
ViMan0 2020-06-21
zzjmay 2020-06-08
sujins 2020-06-05
strongyoung 2020-06-01
sujins 2020-05-30
sujins 2020-05-29
archive 2020-05-28
憧憬 2020-08-21
zzjmay 2020-07-04
zzjmay 2020-05-17
ViMan0 2020-05-06
zzjmay 2020-04-09