HDFS的概念及shell操作

目录

HDFS 产出背景及定义

产生背景

定义

HDFS组成架构

1.NameNode

2.DataNode

3.Client

4.Secondary NameNode

HDFS 文件块大小

HDFS 的 Shell 操作

基本语法

准备工作

 上传命令

下载命令

系统操作命令

HDFS 产出背景及定义

产生背景

        随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系

统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这

就是分布式文件管理系统。HDFS 只是分布式文件管理系统中的一种。

定义

        HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目
录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务
器有各自的角色。

HDFS组成架构

1.NameNode

就是Master,它 是一个主管、管理者。

作用:

(1)管理HDFS的名称空间;

(2)配置副本策略;

(3)管理数据块(Block)映射信息;

(4)处理客户端读写请求。

2.DataNode

就是Slave。NameNode 下达命令,DataNode执行实际的操作。

(1)存储实际的数据块;

(2)执行数据块的读/写操作。

3.Client

就是客户端。

(1)文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传;

(2)与NameNode交互,获取文件的位置信息;

(3)与DataNode交互,读取或者写入数据;

(4)Client提供一些命令来管理HDFS,比如NameNode格式化;

(5)Client可以通过一些命令来访问HDFS,比如对HDFS增删查改操作;

4.Secondary NameNode

并非NameNode的热备。当NameNode挂掉的时候,它并不 能马上替换NameNode并提供服务。

(1)辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode ; (2)在紧急情况下,可辅助恢复NameNode。

HDFS 文件块大小

HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数 ( dfs.blocksize)来规定,默认大小在Hadoop2.x/3.x版本中是128M,1.x版本中是64M。

如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开 始位置所需的时间。导致程序在处理这块数据时,会非常慢。

HDFS 的 Shell 操作

基本语法

hdfs dfs 具体命令 或者  hadoop fs 具体命令 
两者效果完全相同

准备工作

1、首先将hadoop集群启动

start-dfs.sh
start-yarn.sh

2、查看命令详细解释

hdfs dfs -help rm

翻译:

 -rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ... :
  删除与指定文件模式匹配的所有文件。相当于Unix
  命令 “rm<src>”
                                                                                 
-f 如果该文件不存在,则不显示诊断消息或
              修改退出状态以反映错误。                       
  -[rR] 递归删除目录。                                  
  -跳过废纸篓选项会绕过废纸篓(如果启用),并立即删除<src>。 
  - 安全选项需要安全确认,如果启用,需要         
              删除超过的大目录前的确认       
              <hadoop.shell.delete.limit.num.files> 文件。预计在以下情况下会出现延迟
              递归地遍历大目录以计算   
              确认前要删除的文件。  

3、创建文件夹

在hdfs中创建一个名为HelloHadoop的文件夹

 hadoop fs -mkdir /HelloHadoop

 创建完毕我们可以在web界面中看到该文件夹

 上传命令

1、-moveFromLocal:从本地剪切粘贴到 HDFS

先在hadoop中新建一个hdfs1.txt的文件并在里面写入helloHdfs

vim hdfs1.txt

执行命令将该文件剪切到HDFS的HelloHadoop文件夹中

hdfs dfs -moveFromLocal ./hdfs1.txt /HelloHadoop

 在web界面中查看该文件

2、-copyFromLocal:从本地文件系统中拷贝文件到 HDFS 路径去

在hadoop中创建hdfs2.txt文件并在里面输入helloHDFS

vim hdfs2.txt

 执行命令将该文件复制到HDFS的HelloHadoop文件夹中

hdfs dfs -copyFromLocal ./hdfs2.txt /HelloHadoop

  在web界面中查看该文件

3、-put:等同于 copyFromLocal,生产环境更习惯用 put

在hadoop中创建hdfs3.txt文件并在里面输入helloDFS

vim hdfs3.txt

  执行命令将该文件复制到HDFS的HelloHadoop文件夹中

hdfs dfs -put ./hdfs3.txt /HelloHadoop

 

 在web界面中查看该文件

4、 -appendToFile:追加一个文件到已经存在的文件末尾

在hadoop中创建hdfs4.txt文件并在里面输入abc

vim hdfs4.txt

执行命令将该文件中的内容追加到HDFS的HelloHadoop文件夹中的hdfs1.txt中

 hdfs dfs -appendToFile ./hdfs4.txt /HelloHadoop/hdfs1.txt

 使用查看命令查看追加到hdfs1.txt中的内容

 hdfs dfs -cat /HelloHadoop/hdfs1.txt

 我们可以看到hdfs4.txt中的内容abc已经追加到了hdfs1.txt中

下载命令

1、-copyToLocal:从 HDFS 拷贝到本地

执行命令将HelloHadoop文件夹下的hdfs1.txt文件复制到本地的home文件夹中

hdfs dfs -copyToLocal /HelloHadoop/hdfs1.txt /home

 进到home目录中查看文件拷贝成功

2.-get:等同于 copyToLocal,生产环境更习惯用 get

执行命令将HelloHadoop文件夹下的hdfs2.txt文件复制到本地的home文件夹中

 hdfs dfs -get /HelloHadoop/hdfs2.txt /home

  进到home目录中查看文件拷贝成功

系统操作命令

1、-ls: 显示目录信息

执行命令查看目录信息

 hdfs dfs -ls /HelloHadoop

2、-cat:显示文件内容

执行命令查看HelloHadoop文件夹中hdfs1.txt文件中的内容

 hdfs dfs -cat /HelloHadoop/hdfs1.txt

3、-chgrp、-chmod、-chown:Linux 文件系统中的用法一样,修改文件所属权限 

hdfs dfs -chmod 666 /HelloHadoop/hdfs1.txt

4、-mkdir:创建路径

在HDFS中创建一个名为hhh的目录

hdfs dfs -mkdir /hhh

5、-cp:从 HDFS 的一个路径拷贝到 HDFS 的另一个路径 

 执行命令将HelloHadoop目录中的hdfs1.txt文件拷贝到hhh目录中

hdfs dfs -cp /HelloHadoop/hdfs1.txt /hhh

查看hhh目录 拷贝成功

6、-mv:在 HDFS 目录中移动文件

 执行命令将HelloHadoop目录中的hdfs2.txt文件移动到hhh目录中

hdfs dfs -mv /HelloHadoop/hdfs2.txt /hhh

7、-tail:显示一个文件的末尾 1kb 的数据

执行命令查看HelloHadoop目录中的hdfs1.txt文件末尾1kb大小的内容

 hdfs dfs -tail /HelloHadoop/hdfs1.txt

8、-rm:删除文件或文件夹、

执行命令删除HelloHadoop目录中的hdfs2.txt文件

hdfs dfs -rm /HelloHadoop/hdfs2.txt

9、-rm -r:递归删除目录及目录里面内容

执行命令遍历删除HelloHadoop目录中的所有文件

hdfs dfs -rm -r /HelloHadoop

10、-du: 统计文件夹的大小信息

11、-setrep:设置 HDFS 中文件的副本数量

执行命令更改HelloHadoop目录中的hdfs1.txt文件的副本数量

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

open_test01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值