一.背景

  当数据集的大小超过一台独立物理计算机的存储能力时,就有必要对它进行分区(partition) 并存储到若干台单独的计算机上。管理网络中跨多台计算机存储的文件系统称为分布式文件系统 (distributed filesystem ) 。该系统架构于网络之上,势必会引入网络编程的复杂性,因此分布式文件系统比普通磁盘文件系统更为复杂。例如,使文件系统能够容忍节点故障且不丢失任何数据,就是一个极大的挑战。Hadoop 为有一个称为 HDFS 为 的分布式系统,全称为Hadoop Distributed Filesystem,在非正式文档或旧文档以及配置文件中,有时也简称为 DFS。

二.概念

HDFS 集群有两类节点,并以管理者-工作者模式运行,即一个namenode( 管理者)和多个datanode( 工作者 )。


NameNode是HDFS架构中的主节点。它维护着文件系统树及整棵树内所有的文件和目录。这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件(fs-image)编辑日志(edit-logs)文件。也记录着每个文件中各个块所在的数据节点信息,但它并不永久保存块的位置信息,因为这些信息会在系统启动时由数据节点重建。

功能
 管理各个从节点的状态(DataNode)。
 记录存储在HDFS上的所有数据的元数据信息。例如:block存储的位置,文件大小,文件权限,文件层级等等。这些信息以两个文件形式永久保存在本地磁盘上。
命名空间镜像文件(FsImage): fsimage是HDFS文件系统存于硬盘中的元数据检查点,里面记录了自最后一次检查点之前HDFS文件系统中所有目录和文件的序列化信息
编辑日志(edit-logs) 文件:保存了自最后一次检查点之后所有针对HDFS文件系统的操作,比如:增加文件、重命名文件、删除目录等等。
 记录了存储在HDFS上文件的所有变化,例如文件被删除,namenode会记录到editlog中。
 接受DataNode的心跳和各个datanode上的block报告信息,确保DataNode是否存活。
 负责处理所有块的复制因子。 如果DataNode节点宕机,NameNode会选择另外一个DataNode均衡复制因子,并做负载均衡。


DataNode是HDFS架构的从节点,管理各自节点的Block信息。datanode是文件系统的工作节点。它们根据需要存储并检索数据块(受客户端或namenode调度),并且定期向namenode 发送它们所存储的块的列表。

功能
 多个DataNode分别运行在独立的节点上。
 数据实际是存储到DataNode上面
 DataNode执行客户端级别的读写请求。
 向NameNode发送心跳(默认是3s),报告各自节点的健康状况。


Sencondary NameNode是NameNode的助手,不要将其理解成是NameNode的备份。 Secondary NameNode的整个目的在HDFS中提供一个Checkpoint Node,所以也被叫做checkpoint node。、

功能
 定时的从NameNode获取EditLogs,并更新到FsImage上。
 一旦它有新的fsimage文件,它将其拷贝回NameNode上,NameNode在下次重启时回使用这个新的fsimage文件,从而减少重启的时间。


客户端(Client)
Client代表用户通过namenode和datanode访问整个文件系统。客户端提供一个类似于POSIX(可移植操作系统界面)的文件系统接口,因此用户在编程时无需知道namenode和datanode也可实现其功能。


复制因子

HDFS为我们提供了可靠的存储,就是因为这个复制因子。默认复制因子是3。DataNode会定时发送心跳给NameNode,汇报各自节点的Block信息。NameNode收集到这些信息后,会对超出复制因子的Block删除,复制因子不足的Block做添加。

Hadoop整理二(Hadoop分布式存储系统HDFS)的更多相关文章

  1. hadoop系列(二)分布式文件系统HDFS

    根据core-site.xml的配置,接下来就可以通过:hdfs://localhost:9000来对hdfs进行操作了. 1.创建输入目录 C:\WINDOWS\system32>hadoop ...

  2. Hadoop第三天---分布式文件系统HDFS(大数据存储实战)

    1.开机启动Hadoop,输入命令:  检查相关进程的启动情况: 2.对Hadoop集群做一个测试:   可以看到新建的test1.txt和test2.txt已经成功地拷贝到节点上(伪分布式只有一个节 ...

  3. 分布式存储系统-HDFS

    1 HDFS 架构 HDFS作为分布式文件管理系统,Hadoop的基础.HDFS整体架构包括:NameNode.DataNode.Secondary NameNode,如图: HDFS采用主从式的分布 ...

  4. Hadoop 3、Hadoop 分布式存储系统 HDFS

    HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统. 一.HDFS的优缺点 1.HDFS优点: a.高容错性 .数据保存多个副本 .数 ...

  5. Hadoop 3、Hadoop 分布式存储系统 HDFS(好多彩色图)

    HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统. 一.HDFS的优缺点 1.HDFS优点: a.高容错性 .数据保存多个副本 .数 ...

  6. Hadoop分布式存储系统HDFS

    1.hadoop fs 指令 -ls -ls <路径> 查看指定路径的当前目录结构 -lsr -lsr <路径> 递归查看指定路径的目录结构 -du -du <路径> ...

  7. Hadoop整理一(初识Hadoop)

    一.要点 1.Hadoop目的是让多台计算机同时解决一个问题 2.HDFS(Hadoop Distributed File System 分布式存储系统)是一个分布式文件系统,有目录,目录下可以存储文 ...

  8. 大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)

    大数据时代之hadoop(一):hadoop安装 大数据时代之hadoop(二):hadoop脚本解析 大数据时代之hadoop(三):hadoop数据流(生命周期) 大数据时代之hadoop(四): ...

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

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

随机推荐

  1. OpenResty 扩展库之(一)——lua-resty-shell 库

    介绍 当您需要执行子进程(或shell命令)时,这是一个打算与OpenResty应用程序一起使用的小型库. 它类似于os.execute和io.popen,除了它是完全非阻塞的,因此即使对于需要很长时 ...

  2. git 第一次关联远程仓库

    1.首先需要先git pull origin master 2.然后合并两个无关的仓库 git pull origin master --allow-unrelated-histories

  3. 七、Kafka 用户日志上报实时统计之编码实践

    一.数据生产实现 1.配置数据生产模块 项目基础配置所包含的内容,如下所示: •项目工程的文件配置 •集群连接信息配置 •开发演示 2.实现 Flume 到 Kafka 模块 实现 Flume 到 K ...

  4. Java入门系列(四)内部类

    为什么需要内部类? 真正的原因是这样的,java中的内部类和接口加在一起,可以的解决常被C++程序员抱怨java中存在的一个问题没有多继承.实际上,C++的多继承设计起来很复杂,而java通过内部类加 ...

  5. WPF控件收集

    1.Extended WPF Toolkit 2.Fluent Ribbon Control Suite 3.WPF Ribbon Control 4.Telerik RadControls for ...

  6. java反射动态加载类Class.forName();

    1,所有的new出来的对象都是静态加载的,在程序编译的时候就会进行加载.而使用反射机制Class.forName是动态加载的,在运行时刻进行加载. 例子:直接上两个例子 public class Ca ...

  7. 20155307 2016-2017-2 《Java程序设计》第5周学习总结

    20155307 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 这两章主要讲的是如何处理程序中的异常情况,对于错误,java会将其打包成对象,可以用&quo ...

  8. 【转】C#使用PrintDocument打印 多页 打印预览

    PrintDocument实例所有的订阅事件如下: 创建一个PrintDocument的实例.如下: System.Drawing.Printing.PrintDocument docToPrint ...

  9. 差分约束系统 + spfa(A - Layout POJ - 3169)

    题目链接:https://cn.vjudge.net/contest/276233#problem/A 差分约束系统,假设当前有三个不等式 x- y <=t1 y-z<=t2 x-z< ...

  10. MUI上拉加载下拉刷新

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...