您当前的位置: 首页 >  hdfs

星许辰

暂无认证

  • 3浏览

    0关注

    466博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

HDFS——入门介绍

星许辰 发布时间:2021-07-17 20:29:54 ,浏览量:3

目录
  • 1.HDFS概述
  • 2.HDFS的特点
  • 3.HDFS的架构
  • 4.HDFS的Shell命令
    • 4.1.Shell命令介绍
    • 4.2.ls命令
    • 4.3.mkdir命令
    • 4.4.put命令
    • 4.5.moveFromLocal命令
    • 4.6.get目录
    • 4.7.getmerge命令
    • 4.8.rm命令
    • 4.9.cp命令
    • 4.10.cat命令
    • 4.11.head命令
    • 4.12.tail命令
    • 4.13.mv命令
    • 4.14.setrep命令
    • 4.15.df命令
    • 4.16.du命令
    • 4.17.appendToFile命令
  • 5.HDFS的基准测试
    • 5.1.写入速度测试
    • 5.2.读取速度测试
    • 5.3.清除测试数据

1.HDFS概述

​ HDFS(Hadoop Distributed File System)即Hadoop分布式文件系统,是 Apache Hadoop 项目的一个子项目。Hadoop 非常适于存储大型数据 (比如TB和PB),其就是使用 HDFS 作为存储系统。HDFS 使用多台计算机存储文件,并且提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统就被称为分布式文件系统。 应用场景: 在这里插入图片描述

2.HDFS的特点
  • HDFS文件系统可存储超大文件,时效性稍差。
  • HDFS具有硬件故障检测和自动快速恢复功能。
  • HDFS为数据存储提供很强的扩展能力。
  • HDFS存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改。
  • HDFS可在普通廉价的机器上运行。
3.HDFS的架构
  • HDFS采用Master/Slave架构
  • 一个HDFS集群有两个重要的角色,分别是Namenode和Datanode。
  • HDFS的四个基本组件:HDFS Client、NameNode、DataNode和Secondary NameNode。

在这里插入图片描述

4.HDFS的Shell命令 4.1.Shell命令介绍

(1)安装好hadoop环境之后,可以执行hdfs相关的shell命令对hdfs文件系统进行操作,比如文件的创建、删除、修改文件权限等。对HDFS的操作命令类似于Linux的shell对文件的操作,如ls、mkdir、rm等。 (2)Hadoop提供了文件系统的shell命令使用格式如下: hadoop fs args hdfs dfs args 第一个既可以操作HDFS,也可以操作本地系统。第二个则只能操作HDFS系统。

4.2.ls命令

作用:类似于Linux的ls命令,显示文件列表 格式: hadoop fs -ls URI hadoop fs -ls /        #显示文件列表 hadoop fs –ls -R /      #递归显示文件列表

4.3.mkdir命令

作用:以paths中的URI作为参数,创建目录,使用-p参数可以递归创建目录 格式:hadoop fs –mkdir [-p] paths 应用: hadoop fs -mkdir /dir1 hadoop fs -mkdir -p /aaa/bbb/ccc

4.4.put命令

作用: 将单个的源文件或者多个源文件srcs从本地文件系统上传到目标文件系统中 格式:hadoop fs -put < localsrc > … < dst > 应用: hadoop fs -put /root/1.txt  /dir1     #上传文件 hadoop fs –put /root/dir2  /      #上传目录

4.5.moveFromLocal命令

作用:与put命令类似,只不过上传结束,源数据会被删除 格式:hadoop fs -moveFromLocal …

4.6.get目录

作用:将HDFS文件拷贝到本地文件系统 格式:hadoop fs -get < src > < localdst > 应用:hadoop fs -get /initial-setup-ks.cfg /opt   #将HDFS根目录下的initial-setup-ks.cfg拷贝到本地的opt目录下

4.7.getmerge命令

作用:下载多个文件合并到本地文件系统的一个文件中 格式:hadoop fs -getmerge [-nl] [-skip-empty-file] < src > < localdst > 说明:

-nl表示在每个文件末尾添加换行符-skip-empty-file在合并时跳过空文件

应用:hadoop fs -getmerge /tmp/* ./newFile.txt   #将HDFS中/tmp目录下的所有文件合并下载到当前目录的newFile.txt文件中

4.8.rm命令

作用:删除参数指定的文件和目录,参数可以有多个,删除目录需要加-r参数。如果指定-skipTrash选项,那么在回收站可用的情况下,该选项将跳过回收站而直接删除文件;否则在回收站可用时,在HDFS Shell 中执行此命令,会将文件暂时放到回收站中。 格式:hadoop fs -rm [-r] [-skipTrash] URI [URI…] 应用: hadoop fs -rm /initial-setup-ks.cfg    #删除文件 hadoop fs -rm -r /dir2          #删除目录

4.9.cp命令

作用:将文件或目录拷贝到目标路径中(不能跨系统拷贝) 格式:hadoop fs -cp < src > < dst > 应用:hadoop fs -cp /dir1/1.txt /dir2    #将dir1目录下的1.txt文件拷贝到dir2目录下

4.10.cat命令

作用:将参数所指示的文件内容输出到控制台(适合查看小文件) 格式:hadoop fs -cat < filepath > 应用: hadoop fs -cat /dir1/1.txt

4.11.head命令

作用:查看文件前1KB的内容 格式:hadoop fs -head< filepath >

4.12.tail命令

作用:查看文件最后1KB的内容 格式:hadoop fs -tail < filepath >

4.13.mv命令

作用:将hdfs上的文件从原路径src移动到目标路径dst,值得注意的是该命令不能夸文件系统 格式:hadoop fs -mv < src > < dst > 应用:hadoop fs -mv /dir1/1.txt /dir2   #将dir1目录下的1.txt文件移动到dir2目录下

4.14.setrep命令

作用:修改指定文件的副本个数 格式:hadoop fs -setrep [-R] [-w] < rep > < path > 说明:

-R表示递归修改文件夹下所有文件及文件夹-w表示客户端等待副本修改完毕rep副本数量

应用:hadoop fs -setrep -w 2 /tmp/1.txt #将HDFS中/tmp目录下的1.txt的副本数量改为2

4.15.df命令

作用:df显示文件系统的容量、可用空间和已用空间 格式:hadoop fs -df [-h] [< path > …]

4.16.du命令

作用:查看HDFS文件使用的空间量 格式:hadoop fs -du [-s] [-h] < path > … 说明:

-s表示显示指定路径文件长度的汇总摘要,而不是单个文件的摘要-h选项将以“人类可读”的方式格式化文件大小 4.17.appendToFile命令

作用:将所有给定本地文件的内容追加到给定dst文件 格式:hadoop fs -appendToFile < localsrc > … < dst > 说明:dst如果文件不存在,将创建该文件

5.HDFS的基准测试

实际生产环境当中,hadoop的环境搭建完成之后,第一件事情就是进行压力测试,测试我们的集群的读取和写入速度,这些操作被称为基准测试。

5.1.写入速度测试

向HDFS文件系统中写入数据,10个文件,每个文件10MB,文件存放到/benchmarks/TestDFSIO中

hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -write -nrFiles 10 -fileSize 10MB

测试结果如下: 在这里插入图片描述

5.2.读取速度测试

在HDFS文件系统中读入10个文件,每个文件10M

hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -read -nrFiles 10 -fileSize 10MB

测试结果如下: 在这里插入图片描述

5.3.清除测试数据
hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -clean
关注
打赏
1665627467
查看更多评论
立即登录/注册

微信扫码登录

0.0644s