HDFS简介及常见命令行

举报
最后一个好人 发表于 2020/11/24 16:48:55 2020/11/24
【摘要】 HDFS全称Hadoop distributed file system,简称HDFS,是一个分布式文件系统。它是谷歌的GFS提出之后出现的另外一种文件系统。它有一定高度的容错性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案。

HDFS简介及常见命令行


HDFS全称Hadoop distributed file system,简称HDFS,是一个分布式文件系统。它是谷歌的GFS提出之后出现的另外一种文件系统。它有一定高度的容错性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案。

在最初,HADOOP是作为Apache Nutch搜索引擎项目的基础架构而开发的,后来由于它独有的特性,让它成为HADOOP CORE项目的一部分。

 

HDFS的设计思路

简单说一下它的设计思路,大家就可以理解为什么它可以提供高吞吐量的数据访问和适合大规模数据集的应用的特性。

首先HDFS的设计之初就是针对超大文件的存储的,小文件不会提高访问和存储速度,反而会降低;其次它采用了最高效的访问模式,也就是经常所说的流式数据访问,特点就是一次写入多次读取;再有就是它运行在普通的硬件之上的,即使硬件故障,也就通过容错来保证数据的高可用。

HDFS核心概念

Block:大文件的存储会被分割为多个block进行存储。默认为64MB,每一个blok会在多个datanode上存储多份副本,默认为3份。这些设置都能够通过配置文件进行更改。

Namenode:主要负责存储一些metadata信息,主要包括文件目录、block和文件对应关系,以及blockdatanode的对应关系

Datanode:负责存储数据,上面我们所说的高度的容错性大部分在datanode上实现的,还有一部分容错性是体现在namenodesecondname,还有jobtracker的容错等。

HDFS的基础架构图

 

HDFS优点:

高吞吐量访问:HDFS的每个block分布在不同的rack上,在用户访问时,HDFS会计算使用最近和访问量最小的服务器给用户提供。由于block在不同的rack上都有备份,所以不再是单数据访问,所以速度和效率是非常快的。另外HDFS可以并行从服务器集群中读写,增加了文件读写的访问带宽。

高容错性:上面简单的介绍了一下高度容错。系统故障是不可避免的,如何做到故障之后的数据恢复和容错处理是至关重要的。HDFS通过多方面保证数据的可靠性,多分复制并且分布到物理位置的不同服务器上,数据校验功能、后台的连续自检数据一致性功能,都为高容错提供了可能。

容量扩充:因为HDFSblock信息存放到namenode上,文件的block分布到datanode上,当扩充的时候,仅仅添加datanode数量,系统可以在不停止服务的情况下做扩充,不需要人工干预。

3个不同的位置:

本地电脑

服务器(Mac:terminal/终端 Windows:Xshell scureCRT)

集群

HDFS常见命令

HDFS上的数据,分布在不同的地方,我们有一些命令可以用于 增加/查看/删除 等数据操作。

#显示/下的所有文件夹信息

hadoop fs -ls /

 

#递归显示所有文件夹和子文件()

hadoop fs -lsr

 

#创建/user/hadoop目录

hadoop fs -mkdir /user/hadoop

 

#a.txt放到集群/user/hadoop/文件夹下

hadoop fs -put a.txt /user/hadoop/

 

#把集群上的/user/hadoop/a.txt拉到本地/目录下

hadoop fs -get /user/hadoop/a.txt /

 

#集群上复制文件

hadoop fs -cp src dst

 

#集群上移动文件

hadoop fs -mv src dst

 

#查看集群上文件/user/hadoop/a.txt的内容

hadoop fs -cat /user/hadoop/a.txt

 

#删除集群上/user/hadoop/a.txt文件

hadoop fs -rm /user/hadoop/a.txt

 

#删除目录和目录下所有文件

hadoop fs -rmr /user/hadoop/a.txt

 

#hadoop fs -put功能类似

hadoop fs -copyFromLocal localsrc dst

 

#将本地文件上传到hdfs,同时删除本地文件

hadoop fs -moveFromLocal localsrc dst 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。