HDFS全称是Hadoop Distributed File System。作为分布式文件系统,具有高容错性的特点。它放宽了POSIX对于操作系统接口的要求,可以直接以流(Stream)的形式访问文件系统中的数据。

HDFS能快速检测到硬件故障,也就是数据节点的Failover,并且自动恢复数据访问。

使用流形式的数据方法特点不是对数据访问时快速的反应,而是批量数据处理时的吞吐能力的最大化。

文件操作原则:

HDFS文件的操作原则是“只写一次,多次读取”。一个文件一旦被创建再写入数据完毕后就不再被修改。这种原则简化了在传统关系型数据库上,高并发模式下的数据一致性问题的问题。

节点通信:

HDFS的数据节点和命名节点,客户端和命名节点间的通信都是基于TCP/ID协议。

文件写入和读取:

对于文件写入的过程,首先客户端发送文件写入请求给命名节点,命名节点告诉客户端它负责管理的数据节点信息,客户端把它要写入的数据按照命名节点告诉它的数据节点信息分割成多个文件块然后发送给数据节点。

对于文件读取的过程,首先客户端发送文件写入请求给命名节点,命名节点告诉客户端它要访问的文件所在的数据节点,客户端去它被告知的数据节点读取数据块。

数据管道式的文件写入:

对于一次文件块的写入,是从客户端向数据节点写入请求文件块写入,数据节点分配一个文件块,客户端写入完毕后需要等待数据节点把该文件块备份到其他的数据节点才算是整个文件块写入的操作完成。然后客户端才可以开始下一个文件块的写入操作。

文件块备份:

对于文件块的备份,一共会有3份。一份放在命名节点指定的数据节点,一份放在所在相同机架上的某个数据节点,一份放在相同机器上的另一个数据节点上(集群中的一台机器可以有多个数据节点)。相同机器上的不同数据节点是应对软件层面上节点失败,而相同机架上不同机器是通过相同的交换机连接通信,在连接线等物理介质和位置上应该是非常接近的,最后的命名节点指定的数据节点应该为了像交换机宕机这种极端的情况而考虑的设计。那么这些备份在什么时候启动呢?心跳检测程序检测数据节点连接失败就启用备份。

文件块复制:

这里的文件复制概念和文件块备份不同的地方时文件块复制是为平衡数据节点存储利用率而设计的。它就是一个Balancer。HDFS中Balancer命名设定了一个起点值来平衡数据节点的磁盘存储利用率。如果某个数据节点被Balancer命令检测到磁盘使用率超过了这个值会把该节点上的文件块复制到其他的磁盘利用率低的节点上。这对于新的节点加入是有帮助的。但是有一点我不明白,这样子就变成是“被动平衡”或者说不是“绝对平衡”。因为如果是绝对平衡就应该检测哪些磁盘上的存储的使用率低,然后从别的节点上把文件块复制过来,最大程度保持整个HDFS的机器上的磁盘使用率平均。但是仔细一想,这样其实弊大于利。为什么?因为这样一来一旦检查频繁就加重了磁盘的繁忙,也没有那么必要这么做,只要磁盘利用率低于我们设定的健康值变可以。

数据校检:

和像SQL Server这类关系数据库产品对于数据页面的提供校检功能一样,HDFS也对文件块进行校检。HDFS用CRC32算法对数据进行校检,产生校检值后存入到数据块文件中,每次读取数据会将校检值和数据进行对比。

安全模式:

HDFS启动时处于安全模式。这段时间内文件系统内的内容不允许被改动和删除。其实这个阶段就跟SQL Server启动时数据库处于Recovering的状态是一样的道理,背面就是在做一些一致性的检查。而HDFS在这段时间就会做像上面说的运行Balancer命令把一些文件块复制到别的数据节点上。

Hadoop ->> HDFS(Hadoop Distributed File System)的更多相关文章

  1. HDFS体系结构:(Distributed File System)

    分布式系统的大概图 服务器越来越多,客户端对服务器的管理就会越来越复杂,客户端如果是我们用户,就要去记住大量的ip. 对用户而言访问透明的就是分布式文件系统. 分布式文件系统最大的特点:数据存储在多台 ...

  2. HDFS(Hadoop Distributed File System )

    HDFS(Hadoop Distributed File System ) HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表 ...

  3. HDFS分布式文件系统(The Hadoop Distributed File System)

    The Hadoop Distributed File System (HDFS) is designed to store very large data sets reliably, and to ...

  4. HDFS(Hadoop Distributed File System )hadoop分布式文件系统。

    HDFS(Hadoop Distributed File System )hadoop分布式文件系统.HDFS有如下特点:保存多个副本,且提供容错机制,副本丢失或宕机自动恢复.默认存3份.运行在廉价的 ...

  5. Yandex Big Data Essentials Week1 Scaling Distributed File System

    GFS Key Components components failures are a norm even space utilisation write-once-read-many GFS an ...

  6. Ceph: A Scalable, High-Performance Distributed File System译文

    原文地址:陈晓csdn博客 http://blog.csdn.net/juvxiao/article/details/39495037 论文概况 论文名称:Ceph: A Scalable, High ...

  7. 5105 pa3 Distributed File System based on Quorum Protocol

    1 Design document 1.1 System overview We implemented a distributed file system using a quorum based ...

  8. HDFS(Hadoop Distributed File System )概述

    目录 一.HDFS概述 二.HDFS特点 三.HDFS集群组成:主从架构---一个主节点,多个从节点 1. NameNode(名称节点 / 主节点)----- HDFS集群的管理者 2. DataNo ...

  9. HDFS(Hadoop Distributed File System)的组件架构概述

    1.hadoop1.x和hadoop2.x区别 2.组件介绍 HDFS架构概述1)NameNode(nn): 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个 ...

随机推荐

  1. 使用spring,pageHelper ,注解完成分页。

    第一步 maven 依赖pageHeler aspectj 开启aop的注解 基础工作完成! 第二步: 建立一个注解 建立注解实现,建立环绕通知 最后一步:加上 @EnablePaging 注解 就可 ...

  2. 洛谷 P2542 [AHOI2005]航线规划(Link-cut-tree)

    题面 洛谷 bzoj 题解 离线处理+LCT 有点像星球大战 我们可以倒着做,断边变成连边 我们可以把边变成一个点 连边时,如果两个点本身不联通,就\(val\)赋为\(1\),并连接这条边 如果,两 ...

  3. vue-awesome-swiper 的 使用

    1.确保 package.json文件中有  "vue-awesome-swiper": "^3.1.3",没有的话install下 2.在main.js配置 ...

  4. [转] 【译】让人倾倒的 11 个 npm trick

    [From] https://segmentfault.com/a/1190000006804410 本文转载自:众成翻译译者:文蔺链接:http://www.zcfy.cc/article/1206 ...

  5. bugzilla部署问题

    2018-09-25 1.部署环境 kvm虚拟机内    centos 7 系统    httpd+mariadb+bugzilla 关闭系统selinux.防火墙 setenforce 临时关闭se ...

  6. Web API 解决跨域问题

    一.跨域问题的由来 同源策略:出于安全考虑,浏览器会限制脚本中发起的跨站请求,浏览器要求JavaScript或Cookie只能访问同域下的内容. 正是由于这个原因,我们不同项目之间的调用就会被浏览器阻 ...

  7. PIE SDK图层树右键菜单与命令绑定

    1.   功能简介 上一节已经介绍过图层树如何和地图和制图关联,图层树右键菜单主要是基于TocControl控件进行对菜单节点进行控制,TocControl主要作用是显示当前加载的图层有哪些.采用什么 ...

  8. 可编辑的el-table表格,结合input输入,upload文件上传的表格

    最近整理了一下,table表格的编辑状态,把一般表格里需要输入的类型都放进来了,实现的功能如图     这里面的input输入框没什么好说的,绑定对应的值就可以,要注意的是组件上传的upload,这个 ...

  9. Centos安装zeromq, jzmq

    昨晚上帮LP一起在centos上安装zeromq.刚开始的时候,LP说在公司的机器装各种依赖包下不到,第一感觉安装起来还挺麻烦的. 然后上网搜索linux下zeromq的安装,然后先安装各种所需的依赖 ...

  10. oracle 备份恢复篇(六)---基于12c的pdb备份与恢复

    一,备份前提描述 SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> archive log ...