Hadoop思想
化整为零:将大数据切割成Block,放到各个集群机器上
并行计算
HDFS
存储模型:字节
文件线性切割成块(Block)
- 按字节数组进行切割(将大数据看成一个大型的byte数组)
对于UFT-8占用3个字节,有可能会出现,第一个字节在A Block,后两个字节在B Block,怎么解决?
HDFS会对他进行校验处理,后续深入学习
- 偏移量(offset)
Block分散存储在集群节点中:随机存储
单一文件Block大小一致(一个文件在每个Block中切割成的大小一致,最后一个Block大小可不同)
文件与文件可以不一致(每两个文件之间,由于文件大小不同,分割在Block上的大小当然不同)
可设置Block副本数(默认为3),副本无序分散在不同节点上( 副本数不要超过节点数量 )
副本数要根据使用这份数据的程序的频率,适当增大,这样保证计算分布在各个节点上,不至于所有程序在某几个节点上
计算,造成资源拥堵;
可设置Block大小,默认:128m
已经上传的文件副本数可调整,Block大小不能变
文件只支持一次写入,多次读取;同一时刻只能有一个写入者
不能修改、删除文件(因为文件变动,Block大小随之变动,会影响其他快的offset随之变动,引起蝴蝶效应),但是可通过Block追加数据