本文原创,转载注明作者和原文链接!

一:总结注意点:

到现在为止学习到的角色:三个NameNode、SecondaryNameNode、DataNode

    1.存储的是每一个文件分割存储之后的元数据信息。具体的信息有:

    2.而且NameNode的存储是内存存储的,不会有和磁盘的数据交换的过程,这样的话提高了整体的集群的效率,但是这个数据都是需要持久化的,因为不持久化的话,数据是不安全的,加假如哪一天hadoop集群中的NameNode那台服务器挂了的话,里面的元数据如果只是存储在内存中的就全部的丢失了,这样会导致所有的DataNode中的块数据都会报废掉,因为都不知道哪个结点的那个块是属于原始存储的哪个文件了,所以nameNode中会有一个元数据持久化的过程。

具体的持久化过程:在集群format也就是搭建的过程中,会产生一个fsimage,之后在启动集群之后,会根据客户端的指令,产生一个edits log文件,之后集群系统会有机制去限制edits log文件的大小,不超过某个可以我们规定的大小,每天HDFSClient客户端发送指令的时候,edits log日志文件都会记录,直到达到系统中的checkpoint点,NameNode会将edits log文件和fsimage交给SecondaryNameNode去将两者有效的结合,之后回交给NameNode,NameNode会将之前拥有的那个edits log文件删除掉,当产生第二主节点返回结合体之后,会将之前的fsimage替换掉,这就是一次edits log文件和fsimage结合的过程,具体的可以看结合过程 另一篇博文hadoop学习笔记(一):NameNade持久化和DataNode概

    3.只要是已经存储到HDFS分布式文件存储系统中的数据块之后,就不能改变大小了,因为如果改变其中某个文件分割成的某块数据的话,其他的副本都要变,这样就会无形之中给集群添加很多压力。

    4.具体的文件块的大小:对于同一个源数据来说的话,他所分割的各个块的大小都必须是一样的,但是对于不同的源文件的之间的话,分割存储时候分割成的块的大小可以是不一样的

    5.DataNode   中具体存储的源文件的block数据块,就是在服务器中的文件目录中存储的,并没有涉及到内存存储的问题

    6.DataNode也会存储一部分元数据信息:如每一个数据块都会有一个md5  信息,用于每次下载数据块的时候去和上传的时候存储的那个MD5码进行比较,来判断这块数据块是不是还是完整的,如果上传的时候的MD5和下载的时候的MD5码是一样的,则就认为是可用的块。

    7.具体的数据块需要多少个副本,这个可以根据这个块的使用量去定,如果这个块的访问量高的话,可以多存储副本,相反可以少存储副本,但是一本默认的副本的数量是3块

    8.hadoop这个集群,都计算的框架向文件的存储位置进行移动的,而不是文件想计算框架移动,因为前者的资源消耗更低

    9.在集权运行的过程中,NameNode和DataNode是时刻保持着心跳的联系的,DataNode会隔多长时间向主结点汇报自己身上存储的块的状态信息,以保证客户端访问主结点的时候,主结点能够正确的告诉客户端你要找的数据在哪太dataNode结点之上。

    10.安全模式:指的即时fsimage和edits log文件的对于NameNode状态恢复机制

二、HDFS文件权限的分配问题

其中的POSIX标准和window‘linux系统的那种文件的权限策略差不多,但是还是有区别的,因为HDFS是文件系统,而后面的window和linux是操作系统,

具体的hdfs的权限:当访问HDFS的时候,有什么权限的人访问,就会赋予这个人在HDFS系统中什么样的操作权限。

三 、安全模式

hadoop学习笔记(四):HDFS文件权限,安全模式,以及整体注意点总结的更多相关文章

  1. Hadoop学习笔记之二 文件操作

    HDFS分布式文件系统:优点:支持超大文件存储.流式访问.一次写入多次读取.缺点:不适应大量小文件.不适应低时延的数据访问.不适应多用户访问任意修改文件. 1.hadoop用于大数据处理,在数据量较小 ...

  2. Hadoop学习笔记: HDFS

    注:该文内容部分来源于ChinaHadoop.cn上的hadoop视频教程. 一. HDFS概述 HDFS即Hadoop Distributed File System, 源于Google发表于200 ...

  3. Hadoop学习笔记(2)-HDFS的基本操作(Shell命令)

    在这里我给大家继续分享一些关于HDFS分布式文件的经验哈,其中包括一些hdfs的基本的shell命令的操作,再加上hdfs java程序设计.在前面我已经写了关于如何去搭建hadoop这样一个大数据平 ...

  4. Hadoop学习笔记(1):概念和整体架构

    Hadoop简介和历史 Hadoop架构体系 Master和Slave节点 数据分析面临的问题和Hadoop思想 由于工作原因,必须学习和深入一下Hadoop,特此记录笔记. 什么是hadoop? A ...

  5. Hadoop学习笔记四

    一.fsimage,edits和datanode的block在本地文件系统中位置的配置 fsimage:hdfs-site.xml中的dfs.namenode.name.dir  值例如file:// ...

  6. hadoop学习笔记贰 --HDFS及YARN的启动

    1.初始化HDFS :hadoop namenode -format 看到如下字样,说明初始化成功. 启动HDFS,start-dfs.sh 终于启动成功了,原来是core-site.xml  中配置 ...

  7. hadoop学习笔记(四)——eclipse+maven+hadoop2.5.2源代码

    Eclipse同maven进口hadoop源代码 1)  安装和配置maven环境变量 M2_HOME: D:\profession\hadoop\apache-maven-3.3.3 PATH: % ...

  8. 【linux学习笔记四】文件搜索命令

    一 文件搜索 locate //在后台数据库中按文件名搜索 搜索速度更快 locate 文件名 //locate命令所搜索的后台数据库 /var/lib/mlocate //更新数据库 updated ...

  9. Hadoop学习笔记(三) ——HDFS

    参考书籍:<Hadoop实战>第二版 第9章:HDFS详解 1. HDFS基本操作 @ 出现的bug信息 @-@ WARN util.NativeCodeLoader: Unable to ...

随机推荐

  1. Docker最全教程——从理论到实战(十二)

    前言 Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,应用很广.本篇主要讲述Ubuntu下使用SSH远程登录并安装Docker,并且提供了Docker安装的两种方式,希望对大家有所帮 ...

  2. 颜色color转为rgb格式

    function convertHexToRGB(color) {       if (color.length === 4) {             let extendedColor = &q ...

  3. mybatis(三):框架结构

  4. SequoiaDB报告创建线程失败的解决办法

    1.问题背景 对于分布式数据库和分布式环境,高并发和高性能压力的情况下,出现线程创建失败等等问题也是十分常见的,这时候就十分考虑数据库管理员的经验,需要能快速的定位到问题和瓶颈所在,快速解决.本文也是 ...

  5. vue小例子-01

    1.在components下建一个 2.代码如下: <template> <!--1.业务是开始有一组数据,序号,姓名,性别,年龄,操作(删除)     2.有三个输入框输入姓名,性 ...

  6. pytest学习4-fixtures

    源码注释: def fixture(scope="function", params=None, autouse=False, ids=None, name=None): &quo ...

  7. Oracle的物理结构的三种文件

    .dbf数据文件,是用于存储数据库数据的文件,例如表中的记录,索引,数据字典信息等,可以通过系统数据字典DBA_DATA_FILES查看相关信息.与逻辑角度的表空间(并不是真正的文件)对应,一个表空间 ...

  8. 一些好用的Jquery插件

    1.jquery.resizableColumns.min.js,可以给table列加上调节宽度的功能 2.Jquery.cookie.js,可以在客户端写入和获取cookie 3.Paginatio ...

  9. 优酷1080p的kux格式文件转码

    @echo off for /r . %%i in (*.kux) do ( "C:\Program Files (x86)\YouKu\YoukuClient\nplayer\ffmpeg ...

  10. 1.4 mysql编码解决:MySQL编码为utf8设置方法

    mysql的默认编码是拉丁,直接insert语句插入数据库时汉字都会显示成问号 1.安装mysql后,启动服务并登陆, 2.使用show variables命令可查看mysql数据库的默认编码: 直接 ...