词汇解读
block
这个大家应该知道,文件上传前需要分块,这个块就是block,一般为128MB,当然你可以去改,不顾不推荐。因为块太小:寻址时间占比过高。块太大:Map任务数太少,作业执行速度变慢。它是最大的一个单位。
packet
packet是第二大的单位,它是client端向DataNode,或DataNode的PipLine之间传数据的基本单位,默认64KB。
chunk
chunk是最小的单位,它是client向DataNode,或DataNode的PipLine之间进行数据校验的基本单位,默认512Byte,因为用作校验,故每个chunk需要带有4Byte的校验位。所以实际每个chunk写入packet的大小为516Byte。由此可见真实数据与校验值数据的比值约为128 : 1。(即64*1024 / 512)
HDFS优点
高容错(多副本,副本丢失自动备份)
适合批处理(移动计算而非数据,主动暴漏Block偏移量信息给计算框架)
适合大数据处理(百万计以上文件数量,10K+节点)
可构建在廉价机器(多副本,提供容错和恢复机制)
HDFS缺点
虽然叫文件系统但是和文件系统有较大差别(毫秒级相应,低延迟与高吞吐)
小文件存取(占用NameNode元数据大量内存,寻址时间超过读取时间)
并发写入,文件随机修改(同一 一个文件只能有一个写者)