HDFS

  • 元数据分类:分为内存元数据和元数据文件

    元数据文件:包含fsimage&edits,存储在本地磁盘和NFS,防止NameNode所在机器磁盘坏掉后数据丢失

    内存元数据:包含fsimageBlockmap的映像。NameNode启动时会加载fsimage&edits文件到内存,merge后将最新的fsimage回写到本地磁盘和NFS,覆盖旧的fsimage文件

 

NameNode启动过程中fsimage文件处理流程

      第一步:首先加载硬盘上的fsimage文件和edits文件,在内存中merge后将新的fsimage写到磁盘上,这个过程叫checkpoint

      (一般NameNode会配置两个目录来存放fsimageedits文件,分别是本地磁盘和NFS,防止NameNode所在机器的磁盘坏掉后数据丢失。

      NameNode启动时会比较NFS和本地磁盘中的fstime中记载的checkpoint时间加载最新的fsimage。)

      第二步:NameNode加载完fsimage&edits文件后,会将merge后的结果同时写到本地磁盘和NFS此时磁盘上有一份原始的fsimage文件和一份checkpoint文件:fsimage.ckpt。同时edits文件为空。

      第三步:写完checkpoint后,将fsimage.ckpt改名为fsimage(覆盖原有的fsimage),并将最新时间戳写入fstime文件


DataNode

  • DataNode的作用:

    保存block

    启动DataNode线程的时候会向NameNode汇报block信息

    通过向NameNode发送心跳保持与其联系(3秒一次),如果NameNode10分钟没有收到DataNode的心跳,则认为其已经lost,并copy其上的block到其它DataNode

  • DataNode的文件结构(图示引用书籍:Hadoop实战)

wKiom1P5qPPhYZlyAABoZ1Wj8Hw596.jpg

 

      Blk_refixHDFS中的文件数据块,存储的是原始文件内容

      Blk_refix.meta:块的元数据文件:包括版本和类型信息的头文件,与一系列块的的区域校验和组成。

      VERSION文本文件,文件的内容为:

wKioL1P5qiTQRfvOAAB1QGuATf0977.jpg

wKioL1P5qjuQGLr0AACiceOnrZI253.jpg

export HADOOP_HOME=/usr/local/bigdata/hadoop-2.8.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin



export  JAVA_HOME=/usr/local/bigdata/jdk1.8.0_121


bigdata配置



   fs.defaultFS
   hdfs://master:9000


  
     hadoop.tmp.dir
     /usr/local/bigdata/hadoop-2.8.0/tmp 



    
      dfs.namenode.secondary.http-address
      master:50090
    

    
      dfs.replication
      2
    

    
      dfs.namenode.name 

.dir

      file:/usr/local/bigdata/hadoop-2.8.0/hdfs/name
    

    
      dfs.datanode.data.dir
      file:/usr/local/bigdata/hadoop-2.8.0/hdfs/data
    




   
          yarn.nodemanager.aux-services
          mapreduce_shuffle
  

  
           yarn.resourcemanager.address
           master:8032
  

  
          yarn.resourcemanager.scheduler.address
          master:8030
  



    
         yarn.resourcemanager.resource-tracker.address
         master:8031
     

     
         yarn.resourcemanager.admin.address
         master:8033
     

     
         yarn.resourcemanager.webapp.address
         master:8088
     


   
  
    mapreduce.framework.name 


    yarn
  

  
    mapreduce.jobhistory.address
    master:10020
  

  
    mapreduce.jobhistory.webapp.address
    master:19888
  



  scp -r /usr/local/bigdata/hadoop-2.8.0  root@slave1:/usr/local/bigdata/
  scp -r /usr/local/bigdata/hadoop-2.8.0  root@slave2:/usr/local/bigdata/

  scp /etc/profile root@slave1:/etc/profile
  scp /etc/profile root@slave2:/etc/profile


  master中运行
  hdfs namenode -format
  

  ./start-all.sh 




hadoop fs -put input/hello.txt /input 


hadoop fs -put ./ /input 


 File /input/hello.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).
 There are 0 datanode(s) running and no node(s) are excluded in this operation.

问题解决:/etc/hosts文件下 localhost 和master对应

hadoop jar hadoop-mapreduce-examples-2.8.0.jar wordcount /input /output


hadoop fs -cat /output2/* 


1.克隆
2.修改slaves,加3 ,每个都得加
3.删除之前hdfs中文件


BP-2137810398-127.0.0.1-1512903721301
BP-2137810398-127.0.0.1-1512903721301


NameNode
namespaceID=750793135
clusterID=CID-6383417f-1175-4f0a-ad36-743029c32d16
cTime=1512903721301
storageType=NAME_NODE
blockpoolID=BP-2137810398-127.0.0.1-1512903721301

SecondaryNameNode
namespaceID=750793135
clusterID=CID-6383417f-1175-4f0a-ad36-743029c32d16
cTime=1512903721301
storageType=NAME_NODE
blockpoolID=BP-2137810398-127.0.0.1-1512903721301

DataNode VERSION
storageID=DS-6bf660f5-d22d-4cf7-abd0-43487e9790c2
clusterID=CID-6383417f-1175-4f0a-ad36-743029c32d16
cTime=0
datanodeUuid=79c345ea-faad-4530-9738-4888d09455d8
storageType=DATA_NODE

从博客上获取的信息
1.主题:HDFS的结构
   总图
2.NameNode
  DataNode
  
线条:复制、读。写,心跳(3s一次,10分钟,证明丢失连接)

3.SecondaryNameNode  最后一条线
  物理文件目录

你可能感兴趣的:(HDFS)