Hadoop 基础

HDFS的概念

Hadoop Distributed File System ,Hadoop分布式文件系统,主要用来解决海量数据的存储问题

文件级别的分布式系统

块级别的分布式系统

设计思想

  • 分散均匀存储 dfs.blocksize = 128M
  • 备份冗余存储 dfs.replication = 3

重要特性

HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M

DFS文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.dat

目录结构及文件分块信息(元数据)的管理由namenode节点承担

HDFS 基本架构

HDFS 的角色

HDFS也是按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。

  • 主节点 NameNode
    HDFS集群管理者,负责管理文件系统原信息和NameNode各节点
    管理元信息:维护整个文件系统目录树,各个文件的数据块信息等。
    管理NameeNode: DataNode 周期性 NameNode汇报心跳,一旦NameNode发现某个DataNode出现故障,会在其他存货的DataNode上重构丢失的数据块

  • 从节点 DataNode
    存储实际的数据块,并周期性通过 心跳向NameNode汇报自己的状态信息。

  • 客户端 Client
    用户通过客户端与NamenOde和DataNode交互,完成HDFS关联,数据读写等操作。
    文件的分块操作也是客户端完成,当HDFS写入文件时没客户端首先将文件切分成瞪大的数据块,之后从NameNode领取三个DataNode地址,并在他们之间建立数据流水线,将数据块流失写入这些节点中。

  • secondaryNameNode
    辅助namenode管理元数据信息,以及元数据信息的冷备份

  • fsimage
    元数据镜像文件(文件系统的目录树。)

  • edits
    元数据的操作日志(针对文件系统做的修改操作记录)

  • 其他
    namenode内存中存储的是=fsimage+edits。
    SecondaryNameNode负责定时默认1小时,从namenode上,获取fsimage和edits来进行合并,然后再发送给namenode。减少namenode的工作量。

评论