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

  

05-28 07:15