一、 HDFS前言 设计思想 分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析; 在大数据系统中作用: 为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务 重点概念:文件切块,副本存放,元数据 二、 HDFS的概念和特性 首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件 其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色; 重要特性如下: HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( df 【HDFS概述】 Hadoop Distributed File System(HDFS)是一种基于分布式计算的文件系统,它遵循“分而治之”的原则,将大文件和大量文件分割成小块,并在多台服务器上分布式存储,以便于并行处理和分析大规模数据。在大数据处理中,HDFS为各种分布式计算框架如MapReduce、Spark、Tez等提供了数据存储服务。 【HDFS的核心组件】 1. NameNode:作为HDFS的主节点,NameNode主要负责维护文件系统的元数据,包括文件和目录的名称空间、文件的Block到DataNode的映射关系。这些信息以两个关键文件形式存在:fsimage(文件系统元数据的静态快照)和edit logs(记录所有改变的事务日志)。NameNode还处理客户端的文件系统操作请求,如打开、关闭、重命名文件或目录。 2. DataNode:DataNode是HDFS的从节点,它们实际存储数据块(Block)。每个Block可以有多个副本,存储在不同的DataNode上,增强了数据的容错性和可用性。DataNode定期向NameNode发送心跳信息和Block报告,确保NameNode了解数据的最新状态。 【HDFS的特性】 1. 分块存储:HDFS中的文件被划分为固定大小的Block,默认大小为128MB。这种设计使得文件可以跨多台机器分散存储,便于并行处理。 2. 副本机制:每个Block通常有3个副本,提高了数据的可靠性。副本的数量可以通过配置参数`dfs.replication`进行调整。 3. 一次写入,多次读取:HDFS设计为不适合频繁修改文件,更适合大数据的批处理任务,因为更新文件需要重新写入所有副本,成本较高。 4. 统一命名空间:HDFS提供了一个类似Unix的目录树结构,客户端通过路径(如`hdfs://namenode:port/path`)来访问文件。 【HDFS的读写流程】 1. 写入流程:客户端首先与NameNode通信,获取目标文件的Block信息。然后,NameNode指示客户端将Block写入DataNode,通常是按照副本策略选择DataNode。写入完成后,客户端通知NameNode,NameNode更新元数据。 2. 读取流程:客户端同样先与NameNode交互,获取文件Block的位置信息。接着,客户端直接从最近或负载较低的DataNode读取Block。如果读取过程中出现故障,客户端可以自动切换到其他副本。 【HDFS的Shell操作】 HDFS提供了命令行工具(shell客户端),用于与HDFS进行交互,如创建目录、上传/下载文件、查看文件信息、删除文件等。以下是一些常用命令: - `hdfs dfs -ls`: 列出目录内容 - `hdfs dfs -put`: 从本地文件系统向HDFS上传文件 - `hdfs dfs -get`: 从HDFS下载文件到本地 - `hdfs dfs -rm`: 删除HDFS上的文件或目录 这些命令允许用户在HDFS上执行常见的文件操作,方便了HDFS的管理和使用。 HDFS通过其独特的架构和机制,实现了对大规模数据的高效存储和处理,是大数据生态系统中的重要组成部分。理解和掌握HDFS的工作原理和操作方式对于使用Hadoop平台进行大数据处理至关重要。
剩余11页未读,继续阅读
- 粉丝: 376
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
- 3
- 4
前往页