Hadoop分布式文件系统---HDFS

2022/5/30 23:20:03

本文主要是介绍Hadoop分布式文件系统---HDFS,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.HDFS的产生背景

数据量的增多,需要有一种系统管理多台机器的文件,于是产生DFS(Distributed File System)

 

2.HDFS简介

Hadoop项目的核心之一,用于数据存储,HDFS基于GFS开源实现。

 

3.HDFS优点

·处理超大文件--MB到TB级(相对应的它不适用于存储很多小文件)

·运行于廉价机器上,廉价的机器易发生故障,HDFS要做到高可靠、高可用

·一次写入多次读取

 

4.HDFS缺点

·不适用于低延时实时性的数据访问(应该使用HBase)。

·无法存储大量小文件,原因是文件和目录的信息都存储在NameNode中,HDFS能存储的文件数目由namenode的大小决定,当小文件过多会导致集群的性能下降。(解决办法:合并小文件)

 

5.HDFS设计目标

·错误的检测和快速自动的恢复是最核心的目标,硬件错误是常态而不是一场,任何一个服务器都可能失效

·大规模数据集。运行在HDFS上的文件大小一般在GB到TB量级,需要调节HDFS以支持大文件存储。HDFS应该具有较高的数据带宽,能在一个集群中扩展到数百个节点。单一的HDFS实例应该能支撑数以千万计的文件。

·移动计算代价比移动数据代价低,一个作业的计算,离他操作的数据越近就越高效。HDFS提供了将计算移动到数据附近的接口。将计算移动到数据附近要比数据移动到计算更加高效。

 

7.HDFS 组成

默认的最基本的存储单位是数据块(Block),默认的块大小是128MB(有些是64MB)

NameNode(元数据节点)--管理文件系统的命名空间,将所有的文件和文件夹的元数据保存在一个文件系统树。

DataNode(数据节点)--文件系统中真正存储数据的地方,一个文件被拆分成多个Block,接着将Block存储在对应的数据节点 。客户端向NameNode发起请求,然后到对应的数据节点上存取数据。

Secondary NameNode(从数据节点)--要知道Secondary NameNode不是Name Node节点的备胎,它们两个行使的功能不一样,但是两者有关联,其主要功能就是周期性地将Name Node的namespace image和edit log合并,以防日志文件过大。

 

8.HDFS 架构

 HDFS采用master/slave架构。一个HDFS集群由一个Name Node和一定数量的Data Node组成。Name Node是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。集群中的Data Node一般是一个节点对应一个,负责管理它所在节点上的存储数据。

文件系统的名字空间:HDFS支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似,用户可以创建、删除、移动或重命名文件。

当前,HDFS不支持用户磁盘配额和访问权限控制,也不支持硬链接和软链接。但是HDFS架构并不妨碍对这些特性的实现。

 

9.HDFS命令

可使用help命令寻求帮助

hadoop fs -help <命令>

 

在HDFS创建文件夹(级联创建文件夹需要在-mkdir 后面加 -p 否则会报错)

hadoop fs -mkdir  

将Linux本地系统的文件上传到HDFS(这里上传我自己随便创建的一个txt文件,如果需要指定上传至HDFS的路径则在后面添加)

hadoop fs -put /tmp/input.txt /datatest

从HDFS下载文件到本地系统,需要root权限,否则会报permission denied

hdfs dfs -get /datatest/input.txt /home/hadoop/aaa

在hdfs上查看文件内容(这里使用cat,还可以用 -text,效果是一样的)

hdfs dfs -cat /datatest/input.txt

查看文件大小

hdfs dfs -du /datatest

 删除刚刚创建的文件

hadoop fs -rm /datatest/input.txt

 

 如果要删除一整个目录使用    -rmr,这里不做演示了。rmr会递归删除指定目录下的所有子目录和文件,慎用

 更多命令参考官网:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/



这篇关于Hadoop分布式文件系统---HDFS的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程