一、HDFS的由来:

本地系统:一个节点作为系统,以前数据是存放在本地文件系统上的,但本地文件系统存在两个问题:1、本地节点存储容量不够大;2、本地节点会坏,数据不够安全。这时,人们开始利用闲置的计算机组成了分布式系统,分布式系统是用计算机网络将多个节点联系起来组成一个逻辑上统一的系统。

分布式系统的三大特点:

1、物理分布性,可靠性好;

2、逻辑整体性:对内可以是零散的,但对外必须是一个整体;

3、节点自治性:可靠性高。

现在数据是存放在分布式文件系统上的,分布式文件系统的好处:1、理论上存储容量无穷大,只要服务器数量足够多,解决了硬盘容量不够大的问题;2、通过水平复制实现数据备份功能,解决了硬盘会坏,数据不够安全的问题,因此Google的GFS论文就这样诞生了,Google公司大量使用普通PC机作为服务器,PC机上去掉机箱、外设和硬盘,Doug Cutting则借鉴了GFS论文, 实现了HDFS并贡献了apache基金会。

二、HDFS的体系结构:

(1)Namenode:名称节点

1、管理HDFS

2、接收客户端的请求:上传文件、下载文件等

3、创建日志(edits文件),记录所有针对HDFS的操作,保存HDFS的最近操作

注:edits文件记录自最后一次检查点之后所有针对HDFS的操作,比如:增加文件、删除文件等。

保存目录:$HADOOP_HOME/tmp/dfs/name/current

HDFS提供了离线日志查看器(oev)查看edits文件,默认将edits文件转化成xml文件:

hdfs oev -i edits文件 -o xml文件路径

4、保存文件元信息,将内存中不常用的(采用LRU算法:最近最少使用算法)文件元信息保存到磁盘中形成fsimage文件。

注:文件元信息包含文件名、文件大小、文件存放路径、数据块个数、数据块位置。

fsimage文件记录自最后一次检查点之前HDFS中所有文件的元信息(序列化信息),序列化的作用:进程间通信和永久存储。

保存目录:$HADOOP_HOME/tmp/dfs/name/current

HDFS提供了离线镜像查看器(oiv)查看fsimage文件,默认将fsimage文件转化成txt文件

hdfs oiv -i fsimage文件 -o txt文件路径

(2)Datanode:数据节点

1、以数据块为单位保存数据

hadoop1.x数据块大小:64M

hadoop2.x数据块大小:128M

hadoop3.x数据块大小:256M

保存目录:$HADOOP_HOME/tmp/dfs/data/current

(3)SecondaryNamenode:第二名称节点

1、定期进行edits文件和fsimage文件的合并,更新fsimage文件

发生的时机:当HDFS发出检查的时候:1、检查周期:每隔一小时 2、检查大小:edits文件是否达到64M

三、HDFS存在的问题:

1、Namenode单点故障

hadoop1.x:没有解决方案

hadoop2.x:借助zookeeper实现hadoop的HA功能

2、Namenode压力过大且内存有限,影响HDFS存储效率

hadoop1.x:没有解决方案

hadoop2.x:使用HDFS的联盟实现Namenode的水平扩展

四、HDFS的高级特性:

1、HDFS的回收站(Recycle bin):默认是关闭的,可以通过修改core-site.xml文件打开回收站

<property>

<name>fs.trash.interval</name>

<value>1440</value>

</property>

注:一天后自动清空回收站,百度网盘十天后自动清空回收站

2、HDFS的快照(Snapshot):默认是禁用的,快照是某个目录在某一时刻的镜像。

快照的作用:

1、防止用户错误操作

2、备份

3、试验

4、灾难恢复

启用某个目录的快照:hdfs dfsadmin -allowSnapshot /mydir

禁用某个目录的快照:hdfs dfsadmin -disallowSnapshot /mydir

创建这个目录的快照:hdfs dfs -createSnapshot mydir1_backup_01

删除这个目录的快照:hdfs dfs -deleteSnapshot mydir1_backup_01

重命名这个目录的快照:hdfs dfs -reanameSnapshot mydir1_bakcup_01

(创建快照的本质:将目录复制到当前目录中的.snapshot隐藏目录下)

3、HDFS的配额(quota):

1、名称配额:规定某个目录下存放文件的个数,实际个数n-1个

2、空间配额:规定某个目录下存放文件的大小,最小配置128M

4、HDFS的安全模式:只读模式

作用:保护数据块的安全性

过程:当集群启动时首先进入安全模式,检查数据块的副本率(默认副本率:0.999),当副本率不满足要求时,少了:水平复制,多了:删除冗余,副本率=实际副本数/设置副本数。

5、HDFS的权限管理:默认是开启的,可以通过修改hdfs-site.xml文件关闭权限管理

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

作者:李金泽AllenLi,清华大学硕士研究生,研究方向:大数据和人工智能

带您详细解读分布式文件系统HDFS的更多相关文章

  1. 大数据技术原理与应用——分布式文件系统HDFS

    分布式文件系统概述 相对于传统的本地文件系统而言,分布式文件系统(Distribute File System)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统.分布式文件系统的设计一般采用 ...

  2. 你想了解的分布式文件系统HDFS,看这一篇就够了

    1.分布式文件系统 计算机集群结构 分布式文件系统把文件分布存储到多个节点(计算机)上,成千上万的计算机节点构成计算机集群. 分布式文件系统使用的计算机集群,其配置都是由普通硬件构成的,与用多个处理器 ...

  3. 大数据 --> 分布式文件系统HDFS的工作原理

    分布式文件系统HDFS的工作原理 Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数 ...

  4. Hadoop分布式文件系统--HDFS结构分析

    转自:http://blog.csdn.net/androidlushangderen/article/details/47377543 HDFS系列:http://blog.csdn.net/And ...

  5. 【转载】Hadoop分布式文件系统HDFS的工作原理详述

    转载请注明来自36大数据(36dsj.com):36大数据 » Hadoop分布式文件系统HDFS的工作原理详述 转注:读了这篇文章以后,觉得内容比较易懂,所以分享过来支持一下. Hadoop分布式文 ...

  6. 大数据技术 - 分布式文件系统 HDFS 的设计

    本章内容介绍下 Hadoop 自带的分布式文件系统,HDFS 即 Hadoop Distributed Filesystem.HDFS 能够存储超大文件,可以部署在廉价的服务器上,适合一次写入多次读取 ...

  7. 06_Hadoop分布式文件系统HDFS架构讲解

    mr  计算框架 假如有三台机器 统领者master 01  02  03  每台机器都有过滤的应用程序 移动数据 01机== 300M  >mr 移动计算  java程序传递给各个机器(mr) ...

  8. Hadoop分布式文件系统HDFS

    HDFS的探究: HDFS HDFS是 Hadoop Distribute File System的缩写,是谷歌GFS分布式文件系统的开源实现,Apache Hadoop的一个子项目,HDFS基于流数 ...

  9. 对Hadoop分布式文件系统HDFS的操作实践

    原文地址:https://dblab.xmu.edu.cn/blog/290-2/ Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是Hadoop核 ...

随机推荐

  1. 【代码笔记】iOS-UIActionSheet字体的修改

    一,效果图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIVi ...

  2. JS性能优化 之 FOR循环

    FOR 循环我们用的真的是太多了,但你是否关注过它的优化写法呢?记录下: 1. 最最常规写法,没有任何不妥 for (var i = 0; i < 10; i++) { // do someth ...

  3. 使用Tomcat部署应用

    概述 一个简单的web项目下载地址:https://files.cnblogs.com/files/Mike_Chang/hello.rar Tomcat部署应用三种方法. 方法一 将一个WAR文件或 ...

  4. LeetCode题解之Merge k Sorted Lists 解法二

    1.题目描述 2.分析 利用 vector 存储指针,同时合并k个链表. 3.代码 ListNode* mergeKLists(vector<ListNode*>& lists) ...

  5. Windows 自动更新服务恢复

    之前手贱删除了Windows的自动更新服务,命令: SC DELETE Wuauserv 悲剧的是最近中了[永恒之蓝]病毒,很恼人!杀了毒,最后还是得仰仗Windows的补丁来加固系统.于是想通过SC ...

  6. GIT回推本地commit近期版本

    一次意外吧,本地add并且commit之后拉了别人错误的代码下来,后来本地又需要进行编写测试,无奈只能回推到自己刚刚commit过的代码,但是git命令除了拉去提交等其他的不是很熟悉,在度娘之后也遇到 ...

  7. Oracle EBS OM 发放订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  8. sql server 时间格式转换

    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 ...

  9. 数据仓库四个特点(面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant))

    1.面向主题. 数据仓库中的数据是按照一定的主题域进行组织. 主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关.而操作型数据库的数据组织面向事 ...

  10. 4星|《行为设计学:掌控关键决策》:影响决策质量的四大思维陷阱及WRAP应对法

    行为设计学:掌控关键决策 两位作者认为,有四大思维陷阱让人做出错误的决策:思维狭隘.证实倾向.短期情绪.过度自信.两位作者提出WRAP决策流程来应对:Widen your options(拓宽选择空间 ...