文章目录

  • HDFS组件及优略
  • HDFS的优缺点
  • NameNode(主)
  • DataNode(从)
  • SecondaryNameNode
  • JournalNode(共享文件的进程)
  • HDFS读写流程
  • HDFS文件系统读流程
  • HDFS文件系统写流程
  • HDFS集群高可用(HA)
  • 高可用的备份方式
  • 为什么HDFS要有HA存在


HDFS组件及优略

HDFS的优缺点

优点:
高可靠性:Hadoop存储和处理数据的能力强
高扩展性: 有效的分布数据计算,在不同节点上
高效性:动态的移动数据,可以保证各个节点之间的数据平衡
高容错: Hadoop能自动保存文件副本,执行计算任务失败会自动重新分配
缺点:
1.无法高效存储大量小文件(因为HDFS文件存储机制问题)
2.不支持多用户写入以及任意修改文件
3.不适合低延迟数据访问
HDFS中文件在物理介质的存储方式是 分块(block)存储,块大小是可以可以配置参数进行调配的(dfs.blocksize)hadoop2.x默认块大小是128MB

NameNode(主)

就是Master,它相当于一个主管(管理者)
1.管理HDFS的名称空间
2.配置副本策略
3.管理数据块(Block)映射信息(存储一些块信息)
4.处理客户端的读写操作

DataNode(从)

Hadoop 2.x 版本 --> 存储文件块信息都是128MB
1.存储实际的数据块
2.执行数据块的读写操作
HDFS启动的时候 DataNode会向NameNode汇报Block块信息
DataNode通过向NameNode发送心跳信息与其保持联系(3秒),如果NameNode10分钟没有收到
DataNode的心跳信息,则认为当前DataNode已经宕机(lost),启动其他dataNode去复制当前宕机的
DataNode中所有块信息

SecondaryNameNode

ps:SecondaryNameName并不是NameNode的备份
SecondaryNameNode主要是负责对NameNode中fsimage和edits文件尽心合并操作,并将合并好的文件推还给NameNode
fsimage的产生有两种情况
第一种:当NameNode格式化成功后,并且启动成功会产生第一个fsimage文件(只产生一次)
第二种.已经存在fsimage文件并且NameNode启动的时候会产生一个空的日志文件,Edits文件,该文件会记录着客户端对dataNode所有操作日志,SecondaryNameNode会对NameNode中产生的fsimage和Edits进行合并操作,并产生新的fsimage文件推还给NameNode做备份使用
SecondaryNameNode合并文件的两种情况
一.SecondaryNameNode默认3600秒 就会向Namenode发送CheckPoint请求
二.当前edits文件大小达到 64MB SecondaryNameNode也会向Namenode发送CheckPoint
请求

JournalNode(共享文件的进程)

高可用情况下存放namenode的editlog文件,Active Namenode(主节点)往JournalNode的独立进程里写editlog数据,StandBy Namenode(备节点)监测到JournalNode里面log发生了变化再从里面读取数据进行同步.
JournalNode进程非常轻量,降低了复杂度和维护成本,不会因为其中一台的延迟而影响整体的延迟,也不会因为JN的数量增多而影响性能。

HDFS读写流程

HDFS文件系统读流程

hdfs 坏的block真忙修复 hdfs坏块_hadoop

HDFS文件系统写流程

hdfs 坏的block真忙修复 hdfs坏块_big data_02

HDFS集群高可用(HA)

所谓的HA(High available),简称高可用(7*24不间断服务)
ps:集群是不会关闭的,每年例行维护才会关闭服务器(下半夜2:00~5:00)

高可用的备份方式

主从方式(冷备)

准备两个相同的应用程序,一个对外提供服务,成为主程序,另外一个平时不运行(主要负责根对外提供服务的机器进行数据同步等操作),称之为从程序或备份程序,即从程序是主程序的一个备份,等主程序出现问题 的时候顶上去成为主程序.

双主互备(热备)

准备两个相同的应用程序,同时对外提供服务(这时两个主程序相互做对方的备份)当其中一个程序出现问题的时候,另外一个程序可以同样对外提供访问
集群多备
跟双主互备一样,只不过备份的数量多一些而且

为什么HDFS要有HA存在

NameNode在Hadoop2.x之前HDFS中只有一个NameNode会对外提供访问,此时会出现一个致命问题,就是单点故障和性能瓶颈(联邦)
NameNode在主要有以下两个方面影响
NameNode机器发生了意外,宕机集群将无法在提供服务
NameNode机器需要升级,包括软件,硬件等等.此时集群也无法使用户
HDFS HA就是用过配置一个NameNode Active(活)另外一个NameNode Standby(备份),如果Active节点出现问题,standby的节点会继续提供服务,就可以防止单点故障