HDFS(1)

来源:互联网 发布:unity3d回合制游戏 编辑:程序博客网 时间:2024/04/30 20:05

        HDFS中,主要有namenode与datanode节点。其中,namenode节点主要保存数据的元数据信息,datanode保存数据本身。对于 namenode而言,hdfs中只有一个namenode节点,所以namenode至关重要,也就有了namenode的HA研究。nn中具体保存fsimage和edits两种文件,文件位置在hdfs-site.xml中dfs.namenode.name.dir和dfs.namenode.edits.dir中设置。fsimage是镜像文件,保存数据的状态,也就是元数据信息。edits是事务文件,保存用户的操作日志。查看具体的fsiamge和edits文件内容,需要使用oiv和oev命令查看。hdfs访问文件,都是通过nn获得文件元数据信息之后,再去dn中访问对应的文件,而为了快速访问文件,会将元数据信息(150k)都放入内存中,元数据信息具体有哪些值可以查看org.apache.hadoop.fs.FileStatus。如果hdfs中存放了大量的小文件,则会产生大量的元数据信息,造成内存压力,所以hdfs不适合存放小文件。

对datanode而言,hdfs中有很多个datanode节点。dn存放文件的位置在hdfs-site.xml中dfs.datanode.data.dir属性查看。进入之后,可以看到dn中存放的都是一个个block块。在hadoop-2.x中,block块大小最大是128M。如果一个文件是30M,小于128M,则只有1个block,并且该block的大小是30M。

使用块的好处是:1.方便存储大文件,对于大文件,会切分成很多个块,分布在各个dn上面。2.使文件系统简单化,方便管理。


0 0
原创粉丝点击