Hadoop 分布式存储系统 HDFS的实例详解(4)

    ②在执行读或写的过程中,NameNode和DataNode通过HeartBeat进行保存通信,确定DataNode活着。如果发现DataNode死掉了,就将死掉的DataNode上的数据,放到其他节点去。读取时,要读其他节点去。

    ③挂掉一个节点,没关系,还有其他节点可以备份;甚至,挂掉某一个机架,也没关系;其他机架上,也有备份。

2.读流程

    例:

   读操作就简单一些了,如图所示,client要从datanode上,读取FileA。而FileA由block1和block2组成。

   那么,读操作流程为:

    a.client向namenode发送读请求。

    b.namenode查看Metadata信息,返回fileA的block的位置。

     block1:host2,host1,host3

    block2:host7,host8,host4

    c.block的位置是有先后顺序的,先读block1,再读block2。而且block1去host2上读取;然后block2,去host7上读取;

七、HDFS文件权限

  1.与linux系统文件权限类似

    r:read w:write x:execute 权限x对于文件忽略,对于文件夹表示是否允许访问

  2.如果linux系统用户zhangsan使用hadoop命令创建一个文件 ,那么该文件在HDFS中的所有者就是zhangsan。

  3.HDFS权限的目:阻止好人做错事,而不是阻止坏人做坏事;例:只要是zhangsan上传的文件,那HDFS就认为这个文件属于张三,当下次过来操作的还是zhangsan那就可以操作,而不需要密码验证之类的操作。

八、安全模式

在NameNode启动以后会一段时间是处于安全模式,在安全模式下只可查看不能修进行其他操作,因为在安全模式下NN和DN需要做很多工作;

  1.NN 启动的时候首先需要将fsimage 载入内存,并执行编辑日志中的各项操作。

  2.一旦在文件系统中建立了一个新的元数据的映射,则创建一个新的fsimage 文件(与SNN配合)和一个空的edits文件

  3.安全模式下的NameNode,对客户端是只读的(显示文件目录、内容等 ,其他的删除、修改、重命名操作都会失败)

  4.在安全模式下,NameNode会收集来自DataNode汇报的block的信息,如果DN汇报的block的最副本数大于设置的最小副本数,则会认为是“安全”的。

   如果有block的副本数没有达到设置的最小副本数,则该block会被复制直到达到设置的最小副本数为止。

总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1651.html