Hadoop三大组件之HDFS(一)

1. HDFS的架构

HDFS(Hadoop Distributed File System)采用主从架构,由一个NameNode(主节点)和多个DataNode(从节点)组成。NameNode负责管理数据块映射信息(如文件名、文件目录、权限、块位置等)并配置副本策略,而DataNode负责存储实际的数据块。Secondary NameNode辅助NameNode进行元数据的检查点操作。

2. HDFS的读写流程

2.1 写流程

  1. 客户端向NameNode发起写请求,提供文件名和大小等信息。
  2. NameNode将文件划分为数据块,记录副本位置并返回给客户端。
  3. 客户端根据位置信息,将数据块发送给对应的DataNode。
  4. DataNode接收数据块后,将其存储到本地磁盘。
  5. 在写入时,DataNode先写入临时文件,完成后转为永久文件。
  6. DataNode定期向NameNode报告数据块信息。

2.2 读流程

  1. 客户端访问NameNode,查询元数据,获得数据块位置列表。
  2. 选择就近的DataNode服务器,建立输入流请求。
  3. DataNode向输入流中写数据,以packet校验。
  4. 关闭输入流。

3. HDFS的优缺点

3.1 优点

  • 高容错:数据块复制存储,节点故障时自动恢复。
  • 高吞吐:并行处理数据块,高效读写和批处理。
  • 适合大文件:将大文件分块存储,适合大规模数据处理。

3.2 缺点

  • 延迟高:不适合低延迟数据访问。
  • 小文件存储不高效:浪费存储空间和元数据开销。

使用场景:大规模数据存储和计算、日志分析。

4. HDFS默认存储块大小

HDFS默认块大小为128MB(2.3版本后),基于最佳传输损耗理论。较大文件块减少寻址时间,提高传输效率。

5. HDFS的心跳机制

DataNode每隔3秒向NameNode发送心跳信号,报告状态和存储信息。如10分钟未收到心跳信号,NameNode认为节点不可用,并重新分配数据块副本。

6. HDFS的负载均衡

HDFS的负载均衡机制确保数据在DataNode上的分布均匀。当DataNode存储利用率过高时,系统自动将数据迁移至空闲的DataNode。通过手动命令或配置参数调整负载均衡策略。

7. Secondary NameNode

Secondary NameNode辅助NameNode进行元数据的检查点操作。定期从NameNode获取fsimage和edits文件,合并生成新的fsimage文件,发送回NameNode,以减小edits文件大小,防止NameNode重启时加载过多日志。


相关推荐
数据与人工智能律师26 分钟前
解码Web3:DeFi、GameFi、SocialFi的法律风险警示与合规路径
大数据·网络·人工智能·云计算·区块链
CryptoRzz33 分钟前
欧美(美股、加拿大股票、墨西哥股票)股票数据接口文档
java·服务器·开发语言·数据库·区块链
APItesterCris1 小时前
构建弹性数据管道:利用淘宝商品 API 进行流式数据采集与处理
linux·数据库·windows
九河云1 小时前
TOS + 数字孪生:集装箱码头的智能进化密码
大数据·服务器·网络·数据库·数字化转型
说私域1 小时前
开源链动2+1模式AI智能名片S2B2C商城小程序在竞争激烈的中低端面膜服装行业中的应用与策略
大数据·人工智能·小程序
bemyrunningdog2 小时前
IntelliJ IDEA合并分支到master全攻略
大数据·elasticsearch·intellij-idea
手握风云-2 小时前
MySQL数据库精研之旅第十九期:存储过程,数据处理的全能工具箱(二)
数据库·mysql
孟意昶2 小时前
Doris专题17- 数据导入-文件格式
大数据·数据库·分布式·sql·doris
你可以永远相信功夫熊猫2 小时前
金蝶云·星瀚 | 生产制造成本核算终极实操手册(从0到1,含两套完整案例)
数据库·erp
Thepatterraining2 小时前
MySQL零基础教程:DDL/DCL/DML详解,从建库到存储过程一篇搞定!
数据库·sql·mysql