实验3 - HDFS的管理和使用

HDFS 的使用和管理
实验环境
Linux Ubuntu 16.04

实验内容
前提条件:

1)Hadoop 3.0.0 的单点部署完成
2)Java 运行环境部署完成

上述前提条件,我们已经为你准备就绪了。

1. 启动hadoop的hdfs相关进程

cd /apps/hadoop/sbin/
./start-dfs.sh

2. 用jps查看HDFS是否启动

jps

显示信息如下

705 SecondaryNameNode
853 Jps
519 DataNode
409 NameNode

我们可以看到相关进程,都已经启动。

3. 验证HDFS运行状态
先在HDFS上创建一个目录, 看是否能够成功


```bash
hadoop fs -mkdir /myhadoop1
如果成功,查询hdfs文件系统根目录,将看到 /myhadoop1 目录。
hadoop fs -ls /

4. ls 命令
列出hdfs文件系统根目录下的目录和文件。

hadoop fs -ls

列出hdfs文件系统所有的目录和文件。

hadoop fs -ls -R /
5. put 命令
1)拷贝文件:

hadoop fs -put < local file > < hdfs file >

其中< hdfs file >的父目录一定要存在,否则命令不会执行, 比如:

hadoop fs -put /apps/hadoop/README.txt /
2)拷贝目录:

hadoop fs -put < local dir > < hdfs dir >

其中< hdfs dir >的父目录一定要存在,否则命令不会执行, 比如:

hadoop fs -put /apps/hadoop/logs /
3)查询是否拷贝成功:

hadoop fs -ls /
如果拷贝文件和目录成功,你将会看到 /logs 和 /REAME.txt

6. moveFromLocal 命令
1)拷贝文件或目录:

hadoop fs -moveFromLocal < local src > < hdfs dst >

与put相类似,命令执行后源文件 local src 被删除

hadoop fs -moveFromLocal /apps/hadoop/NOTICE.txt /myhadoop1
hadoop fs -moveFromLocal /apps/hadoop/logs /myhadoop1

2)查询是否拷贝成功:

hadoop fs -ls /myhadoop1

如果拷贝文件和目录成功,你将会看到 /logs 和 /NOTICE.txt

7. get 命令
1)拷贝文件或目录到本地:

hadoop fs -get < hdfs file or dir > < local file or dir>

local file不能和 hdfs file名字不能相同,否则会提示文件已存在,没有重名的文件会复制到本地

hadoop fs -get /myhadoop1/NOTICE.txt /apps/hadoop/
hadoop fs -get /myhadoop1/logs       /apps/hadoop/

拷贝多个文件或目录到本地时,本地要为文件夹路径

注意:如果用户不是root, local 路径要为用户文件夹下的路径,否则会出现权限问题

2)查询是否拷贝得到本地成功:

cd /apps/hadoop
ls -l

如果拷贝文件和目录成功,你将会看到 logs 和 NOTICE.txt

8. rm 命令
1)删除一个或多个文件

hadoop fs -rm < hdfs file >

hadoop fs -rm /README.txt
2)删除一个或多个目录

hadoop fs -rm -r < hdfs dir >
hadoop fs -rm -r /logs

3)查询是否删除成功

hadoop fs -ls /

如果删除文件和目录成功,你将不会看到 /logs 和 /NOTICE.txt

9. mkdir 命令
1)创建一个新目录:

hadoop fs -mkdir < hdfs path >

只能一级一级的建目录,父目录不存在则这个命令会报错

hadoop fs -mkdir -p < hdfs dir >

所创建的目录如果父目录不存在就创建该父目录

hadoop fs -mkdir /myhadoop1/test
hadoop fs -mkdir -p /myhadoop2/test

2)查询目录:

hadoop fs -ls /
hadoop fs -ls /myhadoop1
hadoop fs -ls /myhadoop2

如果创建目录成功,你将不会看到 /myhadoop1/test 和 /myhadoop2/test

10. cp 命令
完成HDFS 上文件或目录的拷贝

hadoop fs -cp < hdfs file > < hdfs file >

目标文件不能存在,否则命令不能执行,相当于给文件重命名并保存,源文件还存在

hadoop fs -cp < hdfs file or dir >< hdfs dir >

目标文件夹要存在,否则命令不能执行

1)拷贝一个本地文件到 HDFS 的根目录下

hadoop fs -put  /apps/hadoop/LICENSE.txt  /

成功后,即可以查询到此文件

hadoop fs -ls /

2)然后将此文件拷贝到 /myhadoop1 下

hadoop fs -cp /LICENSE.txt /myhadoop1

3)查询 /myhadoop1 目录

hadoop fs -ls /myhadoop1

如果拷贝成功,你将会看到 LICENSE.txt 文件

11. mv 命令
完成HDFS 上文件或目录的移动

hadoop fs -mv < hdfs file > < hdfs file >

目标文件不能存在,否则命令不能执行,相当于给文件重命名并保存,源文件不存在

hadoop fs -mv < hdfs file or dir >< hdfs dir >

源路径有多个时,目标路径必须为目录,且必须存在

注意:跨文件系统的移动(local到hdfs或者反过来)都是不允许的

1)移动一个 HDFS 文件

hadoop fs -mv /myhadoop1/LICENSE.txt  /myhadoop2

2)查询 /myhadoop2 目录

hadoop fs -ls /myhadoop2

如果拷贝成功,你将会看到 /myhadoop2/LICENSE.txt 文件

12. count 命令
统计hdfs对应路径下的目录个数,文件个数,文件总计大小

hadoop fs -count < hdfs path >
hadoop fs -count /myhadoop1/logs

显示为目录个数,文件个数,文件总计大小,输入路径, 如下:

1    8    128199   /myhadoop1/logs
13. du 命令
hadoop fs -du < hdsf path>

显示hdfs对应路径下每个文件夹和文件的大小

hadoop fs -du -s < hdsf path>

显示hdfs对应路径下所有文件和的大小

hadoop fs -du -h < hdsf path>

显示hdfs对应路径下每个文件夹和文件的大小,文件的大小用方便阅读的形式表示,例如用64M代替67108864

hadoop fs -du /myhadoop2
hadoop fs -du -s /myhadoop2
hadoop fs -du -h /myhadoop2

14. setrep 命令

hadoop fs -setrep -R 3 < hdfs path >

改变一个文件在hdfs中的副本个数,上述命令中数字3为所设置的副本个数

-R选项可以对一个人目录下的所有目录+文件递归执行改变副本个数的操作

hadoop fs -setrep -R 3 /myhadoop1

15. stat 命令

hdoop fs -stat [format] < hdfs path >

返回对应路径的状态信息

[format]可选参数有:

%b(文件大小)

%o(Block大小)

%n(文件名)

%r(副本个数)

%y(最后一次修改日期和时间)

hadoop fs -stat %b /myhadoop2/LICENSE.txt

显示为文件大小, 如下:

147066

16. balancer 命令

hdfs balancer

如果管理员发现某些DataNode保存数据过多,某些DataNode保存数据相对较少,可以使用上述命令手动启动内部的均衡过程

hadoop balancer

17. dfsadmin 命令

hdfs dfsadmin -help

管理员可以通过dfsadmin管理HDFS,用法可以通过上述命令查看

hdfs dfsadmin -help
hdfs dfsadmin -report

显示文件系统的基本数据

hdfs dfsadmin -report
hdfs dfsadmin -safemode < enter | leave | get | wait >

enter:进入安全模式;

leave:离开安全模式;

get:获知是否开启安全模式;

wait:等待离开安全模式

hdfs dfsadmin -safemode enter
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HDFSHadoop分布式文件系统)是Hadoop框架中的分布式文件系统,用于存储和管理大规模数据集。在实验1中,我们将学习如何使用HDFS进行一些常见的操作。 首先,我们需要启动HDFS。通过运行`start-dfs.sh`命令来启动HDFS的所有组件,包括NameNode(负责管理文件系统的命名空间)和DataNode(存储实际的数据块)。 接下来,我们要创建并上传文件HDFS使用`hdfs dfs -mkdir`命令创建一个新的目录,例如`hdfs dfs -mkdir /user/input/`。然后,使用`hdfs dfs -put`命令将本地文件上传到HDFS中的目录中,例如`hdfs dfs -put input.txt /user/input/`。 在HDFS中,我们可以使用`hdfs dfs -ls`命令列出文件和目录的内容。例如,`hdfs dfs -ls /user/input/`将显示该目录下的所有文件和子目录。 如果我们想要从HDFS下载文件到本地文件系统,可以使用`hdfs dfs -get`命令。例如,`hdfs dfs -get /user/input/input.txt`将从HDFS中下载文件到当前工作目录。 除了上传和下载文件,我们还可以使用`hdfs dfs -cat`命令在终端查看文件的内容。例如,`hdfs dfs -cat /user/input/input.txt`将在终端上显示文件的内容。 最后,当我们不再需要某个文件或目录时,可以使用`hdfs dfs -rm`命令从HDFS中删除它们。例如,`hdfs dfs -rm /user/input/input.txt`将删除HDFS中的文件。 总结来说,这个实验教会我们如何使用HDFS进行文件和目录的创建、上传、下载和删除操作。这些基本操作是我们在使用Hadoop进行大规模数据处理时的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值