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. 洛谷 P3380 【模板】二逼平衡树(树套树)

    题面 luogu 题解 2019年AC的第一道题~~ 函数名命名为rank竟然会ce 我写的是树状数组套值域线段树(动态开点) 操作1:询问\(k\)在\([l-r]\)这段区间有多少数比它小,再加\ ...

  2. Luogu P1436 棋盘分割 暴力DP

    我的天,,,,,n=8,k<=15,,,这怕不是暴力DP+高维数组.... 开一个五维数组f[k][i][j][p][q]表示从(i,j)到(p,q)中分成k个矩形最小的平方和. 然后初始化时用 ...

  3. 江西理工大学南昌校区排名赛 F: 单身狗的骑马游戏

    题目描述 萌樱花是一只单身狗. 萌樱花今天在学姐那里做了一道题: 假设赛马场上有n只马儿,第i只马儿的起点在第i米的位置,这些马儿都会朝着同一个方向奔跑. 每只马儿的速度都不一样,而且大家都不知道这些 ...

  4. 马的移动(BFS) 详细注释 一个具有情怀的题目

    题目描述 小明很喜欢下国际象棋,一天,他拿着国际象棋中的"马"时突然想到一个问题: 给定两个棋盘上的方格a和b,马从a跳到b最少需要多少步? 现请你编程解决这个问题. 提示:国际象 ...

  5. ASP.NET与.NET区别

    1.NET是什么? .Net全称.NET Framework是一个开发框架,不是一门编程语言,简单的来说 就是一组类库框架,.NET开发支持C#.VB.NET.J#.Js和Managed C++等 其 ...

  6. [转] Chrome - 浏览器跨域访问设置(附:新老版本两种设置方法)

    [From] http://www.hangge.com/blog/cache/detail_1703.html 在进行前后分离的 webapp 开发,或者 H5 移动 App 开发时,我们会使用 P ...

  7. Linux-密码复杂度限制

    前言 设置一个复杂的密码,可以有效的提升系统的安全性.在Linux上有PAM(Pluggable Authentication Modules)里面有一个pam_cracklib.so来控制密码的复杂 ...

  8. linux 期中架构之 nginx 安装与排错

    1, 安装 nginx 所需要的pcre库 即:perl 兼容正则表达式 yum install pcre pcre-devel -y rpm -qa pcre pcre-devel 检查是否安装好p ...

  9. 使用Redis 配置替换fastjson 反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support

    新建的GenericFastJson2JsonRedisSerializer里面添加白名 添加: static {        ParserConfig.getGlobalInstance().ad ...

  10. EditText属性

    来自http://mp.weixin.qq.com/s/Yncr0XZ4MCWZH2vzTVyYJw android:inputType=”none”android:inputType=”text”a ...