Hadoop-- hdfs

1、HDFS中的三个进程:NameNode(NN)、DataNode(DN)、SecondNameNode(SNN)
2、NameNode(NN)
1、作用:

1、接收客户端的一个读、写的服务,在namenode上存储了数据文件和datanode的映射的关系。

2、存储元数据信息,会将文件的一些属性、文件的大小、文件的权限都存储在namenode上面,和存储block的位置信息,在每次开启集群的时候datanode会向namenode汇报block的信息。

集群启动的时候:

        首先在启动的时候,namenode是不会存储任何datanode与block的映射关系,是datanode会自动的将这种映射关系汇报给namenode,然后namenode会根据datanode的提供的关系自动的生成映射关系。

集群运行的时候:

        namenode会与datanode保持一个心跳机制,每三秒一次,保证客户端在进行读写的需求的时候,namenode能够知道dataname的健康状态

        可以让客户端读取存活的DN节点,如果NN与DN三秒没有心跳则认为DN出现异常,此时不会让新的数据写到这个异常的DN中,客户端访问的时候不提供异常DN节点地址,

        如果超过十分钟没有心跳,那么NN会将当前DN节点存储的数据转移到其他的节点

3、NameNode为了效率,会将所有的操作都在内存中执行。这样的操作速度比较快,NameNode不会和磁盘进行任何的数据交换

        但是会出现两个问题,那就是数据的持久化的问题和数据安全的问题,因为数据是存储在内存中,当出现意外的时候,数据容易丢失。

2、DataNode(DN):
1、作用:

1、存放的是文件的数据信息(block块),以及验证文件完整性的校验文件(以meta结尾的文件)

2、数据是存储在硬盘中

3、会向NN做汇报

        1、在启动的时候,会先检验一下自身的block文件时候存在毁坏等问题,向NN汇报DN上面的block信息。

        2、在运行的时候,和NN保持心跳机制

4、客户端在进行读写请求的时候,会先去NN中查询文件和block与DN的映射的关系,然后客户端就会与DN建立联系,然后读写数据。

3、SecondNameNode:
1、作用:

主要是负责合并NameNode的edit logs到fsimage文件中。

NN也会将存储的元数据信息存储到磁盘中,此时会使用到两个文件,分别是

  1. fsimage - 它是在NameNode启动时对整个文件系统的快照
  2. edit logs - 它是在NameNode启动后,对文件系统的改动序列

只有在NameNode重启时,edit logs才会合并到fsimage文件中,从而得到一个文件系统的最新快照。但是在实际的生产中,集群中NameNode是很少重启的,这也意味着当NameNode运行了很长时间后,edit logs文件会变得很大,此时SNN就会将edit logs与原先旧的fsimage进行合并,产生一个新的fsimage。

主要的工作的流程是:

  1. 首先,它定时到NameNode去获取edit logs,并更新到fsimage上。[笔者注:Secondary NameNode自己的fsimage]
  2. 一旦它有了新的fsimage文件,它将其拷贝回NameNode中。
  3. NameNode在下次重启时会使用这个新的fsimage文件,从而减少重启的时间。Hadoop-- hdfs_第1张图片
4、安全模式:

安全模式是HDFS中的一种工作状态,出于安全模式的状态下,只向用户提供文件的只读的模式,不接受对命名空间的修改,同时NN也不会进行数据块的复制和删除。

强制退出安全模式:

hdfs  dfsadmin -safemode leave  


进入安全模式的命令:

hdfs  dfsadmin  -safemode  enter



查看安全模式:

hdfs dfsadmin  -safemode  get


等待安全模式退出:

hdfs  dfsadmin  -safemode wait
5、机架感知

是为了保证副本在集群中的安全。需要将不同的节点存放在不同的节点上面。

你可能感兴趣的:(Hadoop,3.1.1,hadoop,hdfs,大数据)