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重启时加载过多日志。


相关推荐
IT研究室3 分钟前
大数据毕业设计选题推荐-安顺旅游景点数据分析系统-Hive-Hadoop-Spark
java·大数据·hadoop·毕业设计·源码·课程设计
一条晒干的咸魚27 分钟前
数据技术进化史:从数据仓库到数据中台再到数据飞轮的旅程
数据仓库·数据·数据中台·数据飞轮
百流29 分钟前
Pyspark dataframe基本内置方法(4)
数据库·python·spark·pyspark·dataframe
杨超越luckly30 分钟前
共享单车轨迹数据分析:以厦门市共享单车数据为例(五)
大数据·数据库·python·arcgis·数据分析
IT研究室35 分钟前
大数据毕业设计选题推荐-高校考试分析系统-Hive-Hadoop-Spark
java·大数据·hadoop·spark·毕业设计·源码·课程设计
m0_5883833243 分钟前
进阶SpringBoot之集合 Redis
java·开发语言·数据库·spring boot·redis
&木头人&1 小时前
Oracle生成uuid函数
数据库·oracle
码爸1 小时前
kafka负载均衡迁移(通过kafka eagle)
数据库·分布式·kafka
这孩子叫逆2 小时前
3. 什么是连接池?为什么使用数据库连接池?
数据库·mysql
闲人编程2 小时前
Hadoop 性能优化高频面试题及答案
大数据·hadoop·面试·性能优化·高频