跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
HDFS
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= HDFS = '''Hadoop分布式文件系统'''(Hadoop Distributed File System,简称'''HDFS''')是[[Apache Hadoop]]项目的核心组件之一,是一个高度容错性的分布式文件系统,设计用于在廉价硬件上运行,并能提供高吞吐量的数据访问。 == 概述 == HDFS是基于[[Google文件系统]](GFS)论文设计的分布式文件系统,具有以下主要特点: * '''高容错性''' - 数据自动保存多个副本 * '''高吞吐量''' - 优化用于批量数据处理而非交互式使用 * '''大规模存储''' - 支持PB级数据存储 * '''硬件廉价''' - 设计运行在普通商用硬件上 * '''流式数据访问''' - 适合一次写入多次读取的模式 == 架构 == HDFS采用主从架构,主要组件包括: === NameNode === * 管理文件系统的命名空间 * 维护文件系统树和所有文件的元数据 * 记录每个文件的块列表及其位置 * 处理客户端的文件系统操作请求 === DataNode === * 存储实际的数据块 * 定期向NameNode发送心跳和块报告 * 处理来自客户端的读写请求 === Secondary NameNode === * 定期合并NameNode的编辑日志和文件系统镜像 * 不是NameNode的热备份,但可以在NameNode故障后帮助恢复 <mermaid> graph TD Client -->|元数据操作| NameNode Client -->|数据读写| DataNode NameNode -->|管理| DataNode SecondaryNameNode -->|定期合并| NameNode </mermaid> == 数据组织 == HDFS中的数据被组织为: * '''块(Block)''' - 默认128MB大小的数据块(可配置) * '''文件(File)''' - 由多个块组成 * '''目录(Directory)''' - 包含文件和子目录的命名空间 == 数据可靠性机制 == HDFS通过以下机制确保数据可靠性: * '''副本机制''' - 每个块默认保存3个副本(可配置) * '''心跳检测''' - DataNode定期向NameNode发送心跳 * '''块扫描''' - DataNode定期验证存储的块 * '''安全模式''' - 启动时验证数据完整性 == 文件操作示例 == === 通过HDFS命令行操作 === <syntaxhighlight lang="bash"> # 列出HDFS根目录 hadoop fs -ls / # 创建目录 hadoop fs -mkdir /user # 上传本地文件到HDFS hadoop fs -put localfile.txt /user/hadoop/ # 下载HDFS文件到本地 hadoop fs -get /user/hadoop/file.txt localfile.txt # 查看文件内容 hadoop fs -cat /user/hadoop/file.txt </syntaxhighlight> == 与HBase的关系 == HDFS为[[HBase]]提供底层存储支持,HBase的数据文件(HFile)直接存储在HDFS上。这种结合使得HBase能够: * 利用HDFS的高可靠性和高可用性 * 处理海量数据存储 * 实现数据的自动分片和负载均衡 == 实际应用场景 == * 大型互联网公司的用户行为日志存储 * 金融行业的交易历史记录 * 电信行业的通话详单存储 * 科学计算领域的大规模数据集存储 == 参见 == * [[Hadoop]] * [[HBase]] * [[MapReduce]] * [[YARN]] == 参考文献 == <references /> [[Category:分布式文件系统]] [[Category:Apache软件基金会项目]] [[Category:大数据技术]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)