Hadoop 数据是存储在HDFS, Mapreduce 是一种计算框架,负责计算处理。
HDFS上的数据存储默认是本地节点数据一份,同一机架不同节点一份,不同机架不同节点一份。默认是存储3份
HDFS 存储元数据信息和存储位置信息,metadata。他们之间是通过文件名进行关联的。
DataNode 节点存储FsImage, editLog;NameNode 存储的是block storage
用户的请求都经过NameNode,因为它知道文件的存储位置
HDFS 小文件处理:
小文件的处理是在数据写入HDFS之前做一个处理。
小文件如果合并成大文件,就看不到小文件里面的内容了。只能到合并后的大文件查找。
小文件合并成大文件的场景:日志系统需要按月或者按年查询,就可以将每天的文件按月汇总或者按年汇总。
实现方式:可以用SequenceFile 或者MapFile
SequenceFile:使用filename作为key,并且file contents作为value
MapFile:MapFile是排序后的SequenceFile