(2-3)DateNode+小结HDFS

来源:互联网 发布:网络语吃狗粮 编辑:程序博客网 时间:2024/06/07 18:17


DateNode

       提供真实文件数据的存储服务。
       文件块(block):最基本的存储单位。【为了保证数据的读写比较快,将数据切成块】对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block.
       不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间
        Replication。多复本。默认是三个。【存副本其实是对块存副本】

       

       Q:如果我是130M的文件,我该用几块?

       A:2块,不过第二块只放了2M,有点太浪费了。有什么好方法?


     Shell命令练习:验证块大小

       方法:上传大于128MB的文件,观察块大小
       验证:使用 http://hadoop0:50070 观察


       1、做个试验 先删去hadoop之前所有的东西,再上传一个148M的jdk,

        hadoop fs -put /home/djl/jdk-7u79-linux-i586.tar.gz   /jdk1.7

      2、由于,Linux文件系统之上有一个HDFS,HDFS上的数据还要保存在Linux系统上【比如哪个磁盘上】

            itcast/hadoop-2.2.0/tmp/dfs/ 里面有三个文件 data name namesecondary

           cd到data/current/BP-很长很长的文件/current/finalized/       才可以看到块 

            每个块都有一个.meta结尾的文件信息(以下图片中有两个块,两个块加起来和原文件一样大)

        /itcast/hadoop-2.2.0/tmp/dfs/data/current/BP-1529524667-192.168.8.88-1452028015213/current/finalized

        


         小结

        HDFS是hadoop的核心,用来做海量数据的存储,里面有namenode是整个文件系统的管理节点,它维护着一些元数据信息、还维护着整个文件的目录树、还有接收用户的一些请求、管理块的复制(当一个机器坏掉,块少了一份,namenode就会发命令把这些数据复制一份,【心跳机制】每隔一段时间,小弟主动会把信息汇报给老大)。

         HDFS文件最终最终还是保存在Linux上。尽量不要上传一些小文件。每个块默认要保存3份。


0 0
原创粉丝点击