Hadoop分布式文件系统(HDFS)优缺点、角色、副本机制及文件读写

HDFS特点

HDFS优点

支持处理超大文件

可运行在廉价机器上

高容错性

流式文件写入

HDFS缺点

不适合低延时数据访问场景(立即响应)

不适合小文件存取场景

不适合并发写入,文件随机修改场景

HDFS CLI (命令行)

基本格式

hdfs dfs -cmd<args>

hadoop fs -cmd<args>(已过时)

命令和Linux相似

-ls

-mkdir

-put

-rm

-help

SecondNameNode 每隔一定的时间查看NameNode ,发现有新的执行和修改记录,就备份过来,进行整合,整合成一个大的 文件, 之后 NameNode 查的时候,直接查这个大文件,可以节省查询时间 fsimage会越来越多,editor是单条修改记录,fsimage 所有动作都会记录

在这里插入图片描述

HDFS角色

Client :客户端

NameNode (NN):元数据节点

管理文件系统的Namespace/元数据

一个HDFS集群只有一个Active的NN

DataNode (DN):数据节点

数据存储节点,保存和检索Block

一个集群可以有多个数据节点

Secondary NameNode (SNN):从元数据节点

合并NameNode的edit logs到fsimage文件中

辅助NN将内存中元数据信息持久化

HDFS副本机制

Block :数据块

HDFS最基本的存储单元

默认块大小:128M(2.x)

副本机制

作用:避免数据丢失

副本数默认为3

存放机制:

一个在本地机架节点

一个在同一个机架不同节点

一个在不同机架的节点

在这里插入图片描述
在这里插入图片描述
2^7=128; 最佳100,理论极限150;100~150间 128为 2的7次方 为最宜

HDFS高可用(High Availability)

1.x 版本中

存在Namenode单点问题

2.x 版本中

解决:HDFS Federation方式,共享DN资源

Active Namenode

对外提供服务

Standby Namenode

Active故障时可切换为Active

HDFS读文件

在这里插入图片描述

Hadoop读文件过程:

1.下达命令,首先通过 DistributedFileSystem 解析命令(因为hadoop不能直接解析命令) 向 NameNode 发命令,返回所有的块信息(地址), 获得块定位(好多个) get block locations

2.客户端通过FSData InputStream (流) 读取 datenode 中的副本(默认读主块、主副本)

3.将流关闭
在这里插入图片描述

HDFS写文件

在这里插入图片描述

Hadoop写文件过程:

1.下达命令,先剁开(自动),文件被已128M为一个包拆解,通过 DistributedFileSystem 解析命令,询问NameNode有没有地方可以存放,返回可存放信息的位置的地址,

2。客户端 通过 FSData OutputStream (流) 向主节点写入,在主机架上 随机找 一个相近的节点,第二个节点也会随机找一个相近的节点,,第三个节点先完成副本的写入,返回信息到第二个节点,第二个节点收到信息后,完成副本写入,返回信息回到主节点,主节点完成文件写入,最终返回带着三个地址的块信息,通知NameNode,将信息写下来

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值