HDFS设计目标

1)硬件错误是常态,数据保存需要冗余。

2)数据批量读取,Hadoop擅长数据分析而不是事务处理。

3)大规模数据集。

4)简单一致醒模型,降低系统复杂度,文件一次写入多次读取,

5)“数据就近”原则分配数据节点。

HDFS体系结构

NameNode

DataNode

SecondayNameNode

事务日志

映像文件

NameNode

文件系统命名空间

记录每个文件系统数据块在各个DataNode上的位置和副本信息。

协调Client对文件的访问

记录命名空间内的改动

NameNode使用事务日志记录HDFS元数据的变化。使用映像文件存储文件系统的命名空间,文件映射,文件属性等。

DataNode

负责物理节点的存储管理

一次写入,多次读取(不修改)。

文件由数据块(block)组成默认为64MB。

Block应尽量分配在不同的物理节点上。

HDFS读取流程

Client要访问HDFS上的一个文件

1)从NN获取组成这个文件的block位置列表。

2)更具列表知道存储数据快的dn。

3)访问dn获取数据。

4)NN并不参与数据实际传输。

HDFS如何保证集群当中的数据存储可靠性

1)冗余副本

2)机架策略

3)心跳机制

4)安全模式

5) 快照机制

冗余副本

Hdfs默认每个block三个副本(不足三分制动),dn启动时,向nn汇报各数据快信息。

机架策略

集群一般放在不同机架上,

HDFS“机架感知”

一般第一个副本存放在上穿文价的本机架上,如果是本集群外提交,则随机挑选磁盘不太满,cpu不太忙的节点存储。

第二个副本放在与第一个机架不同的节点上,

第三个副本放在与第二个副本相同的节点上。

更多副本:随机。

心跳机制

NN周期从dn接收心跳信息和block报告(3秒一次)

NN根据block报告验证元数据

没按时发送心跳(10分钟)的dn则认为已经lost,并copy其上的block到其他DN。

安全模式

NN启动时会经过“安全模式”阶段

安全模式阶段不会产生写操作,只执行写操作

次阶段NN收集NN的报告,当block达到最小副本数以上时,会被认

为是“安全”的, 当block未达到最小副本数时,该块会被复制知道达到安全。

回收站

删除文件时,将文件放入回收站。

回收站里文件可以快速恢复。

当达到一定阀值时,就被彻底删除,释放占用block。

快照

支持某一时间点的映像,需要时是数据重返这个时间点。

HDFS分布式文件系统设计思想的更多相关文章

  1. Hadoop HDFS分布式文件系统设计要点与架构

      Hadoop HDFS分布式文件系统设计要点与架构     Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群 ...

  2. Hadoop HDFS分布式文件系统设计要点与架构(转摘)

    Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Ha ...

  3. 吴裕雄--天生自然HADOOP操作实验学习笔记:hdfs分布式文件系统安装

    实验目的 复习安装jdk 学习免密码登录 掌握安装配置hdfs集群的方法 掌握hdfs集群的简单使用和检查其工作状态 实验原理 1.hdfs是什么 hadoop安装的第一部分是安装hdfs,hdfs是 ...

  4. FastDFS分布式文件系统设计原理

    转载自http://blog.chinaunix.net/uid-20196318-id-4058561.html FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker ser ...

  5. HDFS分布式文件系统资源管理器开发总结

      HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式 ...

  6. 我理解中的Hadoop HDFS分布式文件系统

    一,什么是分布式文件系统,分布式文件系统能干什么 在学习一个文件系统时,首先我先想到的是,学习它能为我们提供什么样的服务,它的价值在哪里,为什么要去学它.以这样的方式去理解它之后在日后的深入学习中才能 ...

  7. Hadoop HDFS概念学习系列之分布式文件管理系统(二十五)

    数据量越来越多,在一个操作系统管辖的范围存在不了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来 管理多台机器上的文件,这就是分布式文件管理系统. 是一种允许文件 ...

  8. 一图看懂hadoop分布式文件存储系统HDFS工作原理

    一图看懂hadoop分布式文件存储系统HDFS工作原理

  9. 分布式文件管理系统HDFS

    Hadoop 分布式文件管理系统HDFS可以部署在廉价硬件之上,能够高容错. 可靠地存储海量数据(可以达到TB甚至PB级),它还可以和Yam中的MapReduce 编程模型很好地结合,为应用程序提供高 ...

随机推荐

  1. 第二十二章 CLR寄宿和AppDomain

    1. 概念解析 CLR Hosting(CLR 宿主):初始启动.Net Application时,Windows进程的执行和初始化跟传统的Win32程序是一样的,执行的还是非托管代码,只不过由于PE ...

  2. 值得珍藏的.NET源码,不保存就没机会了

    很早以前,我们通过http://referencesource.microsoft.com/netframework.aspx可以下载到.NET的各版本公开源码,但如今,微软对sscli项目进行了改版 ...

  3. win7右下角声音图标不见的解决方法

    1.启动任务管理器 2.在进程选项卡里找到"explorer.exe",然后结束该进程 3.接着点击应用程序选项卡,点击新任务 4.输入explorer.exe,然后点击确定 5. ...

  4. How to learn linux device driver

    To learn device driver development, like any other new knowledge, the bestapproach for me is to lear ...

  5. Android开发之消息机制

    转:http://stackvoid.com/introduction-to-Message-Handler-in-Android/ http://blog.dreamtobe.cn/2016/03/ ...

  6. Git for windows 中文乱码解决方案

    1.git status时显示乱码,如下: \316\304\261\276\316\304\265\265.txt 解决方案: $ git config --global core.quotepat ...

  7. JUnit4概述

    JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写. 先简单解释一下什么是Annotation,这个单词一般是翻译成元数据.元数据 ...

  8. 进程间通信的WM_COPYDATA的使用

    http://blog.csdn.net/ao929929fei/article/details/6316174 接收数据的一方 ON_WM_COPYDATA() afx_msg BOOL OnCop ...

  9. 关于Hibernate中的Configuration

    Hibernate中,关于从 Configuration中建立一个SessionFactory常用的可以有两种方法,一种是为Configuration提供hibernate.cfg.xml配置文件,还 ...

  10. VS2010下编译安装DarwinStreamingServer5.5.5

    源码下载链接:http://dss.macosforge.org/源码版本: 5.5.5版本电脑环境:visual studio2010,window 7 x64系统.用VS2010打开WinNTSu ...