一、HDFS简介
Hadoop Distributed File System(HDFS)是一个为处理超大数据集而设计的分布式文件系统。它旨在提供高吞吐量数据访问,以及为运行在大规模硬件上的应用程序提供数据的容错性。HDFS是Apache Hadoop关键子项目之一,它为支持Apache Hadoop生态系统中的其他子项目提供了核心资源。
二、HDFS架构
HDFS采用master/slave的架构,HDFS集群由一个NameNode和多个DataNode组成,一个HDFS集群只有一个NameNode,它是整个文件系统的管理者,负责文件系统的命名空间、用户权限的验证、存储元数据等重要工作;而DataNode负责存储实际的数据块。
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
</configuration>
三、HDFS特性
1、数据容错性
HDFS是一个设计用于运行在廉价硬件上的数据存储系统。它提供数据的容错性,就是说当一个节点失效时,数据依然是可用的。这通常是通过在多个节点上复制数据来实现的。
2、高吞吐率
HDFS优化了读写速度,它假设数据可能比内存大,因此大部分读写是磁盘I/O,所以它的设计目标是优化存储器(含磁盘)的传输速度,即吞吐量。
3、大数据协调
HDFS可以存储和处理大数据文件,通常达到GB、TB和PB级别。HDFS与MapReduce配合使用,可以完成数据存储、计算和分析的整个过程。
四、HDFS操作示例
1、创建文件夹
hadoop fs -mkdir /user/hadoopdir
2、上传文件
hadoop fs -put /home/user/file.txt /user/hadoopdir/
3、下载文件
hadoop fs -get /user/hadoopdir/file.txt /home/user/
4、列出文件夹下的文件
hadoop fs -ls /user/hadoopdir
5、删除文件夹下的文件
hadoop fs -rm /user/hadoopdir/file.txt
五、总结
HDFS是一个为大规模数据集存储和处理而设计的分布式文件系统,它保证数据的容错性和高吞吐率,并能与MapReduce等工具配合使用完成整个大数据处理过程。掌握HDFS的操作和架构原理,对于学习和使用大数据相关技术有着重要的意义。