开源大数据HDFS的Shell操作(实验三)

一、实验目的

1、掌握HDFS文件上传与下载的具体命令。

2、掌握HDFS文件管理的基本操作。

二、HDFSShell操作学习

1.准备工作

(1)启动Hadoop集群

start-all.sh

 

(2)-help:输入这个命令参数的帮助信息

hadoop fs -help rm

 (3)查看所有命令

hadoop fs

(4) 创建/sanguo文件夹

cd /opt/software/hadoop-2.6.5    ##按照自己文件的路径去进入hadoop文件夹
hadoop fs -mkdir /sanguo


我们查看namenode节点端口来查看是否成功创建,结果如下

Namenode主节点的端口(http://192.168.36.128:50070
Namenode管理文件系统的命名空间和元数据,同时也控制着文件数据块的分布

2、上传命令学习

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

(注意:该命令剪切粘贴后本地创建的文件就没有了)

vim shuguo.txt

输入:shuguo

hadoop fs  -moveFromLocal  ./shuguo.txt  /sanguo

 
查看sanguo目录下的文件

查看HDFS中的具体内容
 查看本地文件

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

(因为是复制所有本地文件还存在,创建后可以使用命令ll查看)

vim weiguo.txt

输入:weiguo


hadoop fs -copyFromLocal weiguo.txt /sanguo


创建成功:在namenode主节点的端口可以验证

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

vim wuguo.txt

输入:wuguo


 

hadoop fs -put ./wuguo.txt /sanguo


成功上传:

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

vim liubei.txt

输入:liubei

 

adoop fs -appendToFile liubei.txt /sanguo/shuguo.txt


可以使用cat命令查看一下shuguo.txt文件的内容是否发生改变

(可以看到liubei已经添加到HDFS根目录的sanguo文件夹中的shuguo.txt文件中了)

3、下载命令的学习

(1)-copyToLocal:从HDFS拷贝到本地

hadoop fs -copyToLocal /sanguo/shuguo.txt ./
##./:表示将文件复制到当前工作目录(也即是执行命令的目录
ll

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

hadoop fs -get /sanguo/shuguo.txt ./shuguo2.txt

4、学习HDFS的直接操作

(1)-ls: 显示目录信息

hadoop fs -ls /sanguo

(2)-cat:显示文件内容

hadoop fs -cat /sanguo/shuguo.txt

(3)-chgrp、-chmod、-chown命令

-chgrp、-chmod、-chown:Linux文件系统中的用法一样,修改文件所属权限, -chown更改文件拥有者与所在组,-chmod修改文件权限

查看修改前的文件拥有者、所属者及文件权限

hadoop fs -ls /sanguo/shuguo.txt


rw-r--r--  :
第一个字符: - 表示这是一个普通文件更改文件所有者(如果是目录,则为 d)。
接下来的九个字符分成三组,每组三个字符,表示不同用户类型的权限:
rw-:文件所有者(user)root 具有读(r)和写(w)权限,但没有执行(x)权限。
r--:文件所属组(group)supergroup 只有读(r)权限,没有写(w)和执行(x)权限。
r--:其他用户(others)也只有读(r)权限,没有写(w)和执行(x)权限。
1:文件占用的块数,通常是 1,表示文件在 HDFS 中占用一个块
root:该文件的所有者是 root 用户
supergroup:该文件的所属组是 supergroup,这意味着属于这个组的用户将具有相应的组权限

 将文件的所有者和所有属改为aliyun且修改文件权限为666

hadoop fs  -chown aliyun:aliyun  /sanguo/shuguo.txt
##将文件的所有者和所有属改为aliyun
hadoop fs  -chmod 666  /sanguo/shuguo.txt
##修改文件权限为666
hadoop fs -ls /sanguo/shuguo.txt


修改后的文件:
rw- :具有读(r)和写(w)权限,但没有执行(x)权限[权限即666]

(4)-mkdir:创建路径

hadoop fs -mkdir /jinguo


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

hadoop fs -cp /sanguo/shuguo.txt /jinguo


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

移动wuguo.txtweiguo.txt到文件夹jinguo

hadoop fs -mv /sanguo/wuguo.txt /jinguo
hadoop fs -mv /sanguo/weiguo.txt /jinguo




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

hadoop fs -tail /jinguo/shuguo.txt

(8)-rm:删除文件或文件夹

hadoop fs -rm /sanguo/shuguo.txt


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

hadoop fs -rm -r /sanguo
## rm r :是递归删除命令,用于删除目录及其子目录和文件


(10)-du:统计文件夹的大小信息(字节大小)

显示 /jinguo 目录的总磁盘使用量,每项都将以可读格式显示:

hadoop fs -du -s -h /jinguo


(28表示文件大小为28字节)

-s:表示汇总(summarize)模式。此选项会显示指定目录的总使用量,而不是列出该目录下每个文件和子目录的使用情况
-h:表示以可读性更高的格式(human-readable)显示文件大小,例如以 KB、MB、GB 等单位显示

 列出 /jinguo 目录下每个文件和子目录的磁盘使用量,每项都将以可读格式显示:

hadoop fs -du  -h /jinguo

 可读格式没有显示单位原因:在某些情况下,Hadoop 的 hadoop fs -du 命令可能不会自动为小于 1KB 的数字添加单位(如 B、KB、MB 等)。因此,如果目录的大小非常小(例如小于 1KB,如 28 字节),它可能只以字节数的形式显示,而没有后缀单位

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

hadoop fs -setrep 10 /jinguo/shuguo.txt


注意:这里设置的副本数只是记录在NameNode的元数据中,是否真的会有这么多副本,还得看DataNode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10。

三、实验练习

(1)实验要求

1.请在本地创建一个文件(文件名为学号-姓名,例0001-zhangsan.txt),并将文件上传至集群中的/test目录(需新建对应目录)下,在网页端展示文件信息截图。
2.请将该文件的拥有者与所在组改为aliyun,文件权限改为所有用户都可读可写,文件副本数量改为3份,在网页端展示文件信息截图。

(2)实验操作

1.1  创建/test文件夹

hadoop fs -mkdir /test


1.2  在本地创建文件

touch 20230114-lutaiyu.txt
ll

1.3  将文件上传至集群中的/test目录

有三种命令可以实现:
hadoop fs -put 20230114-lutaiyu.txt /test
hadoop fs -moveFromLocal 20230114-lutaiyu.txt /test
hadoop fs -copyFromLocal 20230114-lutaiyu.txt /test

这里演示命令①:

2.1  修改文件的拥有者与所在组改为aliyun

hadoop fs -chown aliyun:aliyun /test/20230114-lutaiyu.txt

2.2  文件权限改为所有用户都可读可写

hadoop fs -chmod 666 /test/20230114-lutaiyu.txt

2.3  文件副本数量改为3份

hadoop fs -setrep 3 /test/20230114-lutaiyu.txt


截图如下:

2.4  关闭hadoop集群

stop-all.sh

四、实验总结

本实验通过使用 HDFS 文件系统对目录和文件两大结构类型进行了上传与下载的具体命令的基本操作,帮助初学者进一步掌握和巩固 HDFS 文件管理基本操作,为之后的学习奠定基础。初学者可能会觉得甚是繁琐,命令比较多,熟能生巧即可。

离群索居者,不是神明就是野兽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值