HDFS SHELL命令行接口操作实训

进行本实训之前,建议把教材《Hadoop大数据开发实战(杨力 著)》第56~67页的HDFS SHELL命令先练习一下,书上的命令比较基础

=======================HDFS的基本SHELL操作命令========================

【实验描述】Hadoop提供HDFS分布式文件系统交互的SHELL命令,通过了解Hadoop Shell命令的用法。掌握对Hadoop分布式系统的命令行操作。

Shell操作的基本命令格式为:

Usage: hadoop fs [generic options]

      [-appendToFile <localsrc> ... <dst>]

      [-cat [-ignoreCrc] <src> ...]

      [-checksum <src> ...]

      [-chgrp [-R] GROUP PATH...]

      [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]

      [-chown [-R] [OWNER][:[GROUP]] PATH...]

      [-copyFromLocal [-f] [-p] <localsrc> ... <dst>]

      [-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]

      [-count [-q] <path> ...]

      [-cp [-f] [-p] <src> ... <dst>]

      [-createSnapshot <snapshotDir> [<snapshotName>]]

      [-deleteSnapshot <snapshotDir> <snapshotName>]

      [-df [-h] [<path> ...]]

      [-du [-s] [-h] <path> ...]

      [-expunge]

      [-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]

      [-getmerge [-nl] <src> <localdst>]

      [-help [cmd ...]]

      [-ls [-d] [-h] [-R] [<path> ...]]

      [-mkdir [-p] <path> ...]

      [-moveFromLocal <localsrc> ... <dst>]

      [-moveToLocal <src> <localdst>]

      [-mv <src> ... <dst>]

      [-put [-f] [-p] <localsrc> ... <dst>]

      [-renameSnapshot <snapshotDir> <oldName> <newName>]

      [-rm [-f] [-r|-R] [-skipTrash] <src> ...]

      [-rmdir [--ignore-fail-on-non-empty] <dir> ...]

      [-setrep [-R] [-w] <rep> <path> ...]

      [-stat [format] <path> ...]

      [-tail [-f] <file>]

      [-test -[defsz] <path>]

      [-text [-ignoreCrc] <src> ...]

      [-touchz <path> ...]

      [-usage [cmd ...]]

【实验步骤】

步骤1:查看hdfs分布式系统根目录下所有文件和文件夹信息

hadoop fs -ls /

步骤2:利用hadoop fs –mkdir 命令在hdfs上创建test1test2test3目录。

hadoop fs -mkdir /test1

 hadoop fs -mkdir /test2

hadoop fs -mkdir /test3

hadoop fs -ls /

Found 3 items

drwxr-xr-x   - root supergroup          0 2018-08-08 10:18 /test1

drwxr-xr-x   - root supergroup          0 2018-08-08 10:18 /test2

drwxr-xr-x   - root supergroup          0 2018-08-08 10:20 /test3

步骤3:在本地系统编辑文件test1.txt,操作命令如下:

vi test1.txt

添加内容

filename test1.txt

执行同样的操作,创建test2.txt和test3.txt文件

利用hadoop fs –put命令上传文件test1.txt到hdfs的/test1目录;上传文件test2.txt到hdfs的/test2.txt目录;上传文件test3.txt到hdfs的/test3.txt目录,操作命令如下:

 hadoop fs -put test1.txt /test1

hadoop fs -put test2.txt /test2

hadoop fs -put test3.txt /test3

上传成功后,利用查看命令进行查看

hadoop fs -ls /test1

Found 1 items

-rw-r--r--   3 root supergroup         19 2018-08-08 10:40 /test1/test1.txt

hadoop fs -ls /test2

Found 1 items

-rw-r--r--   3 root supergroup         19 2018-08-08 10:40 /test2/test2.txt

hadoop fs -ls /test3

Found 1 items

-rw-r--r--   3 root supergroup         19 2018-08-08 10:41 /test3/test3.txt

步骤4:利用hadoop fs -text命令查看文件的内容

hadoop fs -text /test1/test1.txt

filename test1.txt

或查看文件内容

hadoop fs -cat /test1/test1.txt

filename test1.txt

执行同样的操作,查看test2.txt和test3.txt文件的内容

步骤5:利用hadoop fs –appendToFile命令实现对hdfs分布式系统上文件内容的追加

在本地编辑testtmp.txt文件,文件内容为“filename testtmp.txt”,将testtmp.txt文件的内容追加到hdfs分布式系统的/test1/test1.txt文件后。

cd

vi testtmp.txt

hadoop fs -appendToFile testtmp.txt /test1/test1.txt

hadoop fs -text /test1/test1.txt   

查看/test1/test1.txt文件内容        

filename test1.txt

filename testtmp.txt

步骤6:利用hadoop fs –cp命令将hdfs分布式系统下/test1/test1.txt文件复制到/test2/录中

hadoop fs -ls /test2

Found 2 items

-rw-r--r--   3 root supergroup         40 2018-08-08 10:57 /test2/test1.txt

-rw-r--r--   3 root supergroup         19 2018-08-08 10:40 /test2/test2.txt

步骤7:利用hadoop fs –rm命令将hdfs分布式系统下/test2/test1.txt文件删除

hadoop fs -rm /test2/test1.txt

Deleted /test2/test1.txt

hadoop fs -ls /test2

Found 1 items            

-rw-r--r--   3 root supergroup         19 2018-08-08 10:40 /test2/test2.txt

步骤9:利用hadoop fs –mv 命令将hdfs分布式系统上/test2/test2.txt文件移动到/test1目录中

hadoop fs -ls /test1

Found 1 items

-rw-r--r--   3 root supergroup         40 2018-08-08 10:55 /test1/test1.txt

hadoop fs -mv /test2/test2.txt /test1

hadoop fs -ls /test1

Found 2 items

-rw-r--r--   3 root supergroup         40 2018-08-08 10:55 /test1/test1.txt

-rw-r--r--   3 root supergroup         19 2018-08-08 10:40 /test1/test2.txt

[root@hadoop1 ~]# hadoop fs -ls /test2    // 该目录下的文件已经删除

步骤10:利用hadoop fs -moveFromLocal 命令将本地文件testtmp.txt文件从本地移动到hdfs 系统的/test2目录中(本地文件会被删除)

hadoop fs -ls /test2

 hadoop fs -moveFromLocal testtmp.txt /test2

 hadoop fs -ls /test2

Found 1 items

-rw-r--r--   3 root supergroup         21 2018-08-08 11:02 /test2/testtmp.txt

同时在本地利用ls命令进行查看,会发现testtmp.txt文件被删除。

步骤11:在本地系统的根目录下建立test文件夹,利用hadoop fs –get命令将hdfs分布式系统上/test1/test1.txt文件下载到本地根目录下的test文件夹,操作命令如下:

mkdir /test

cd /test

ls

hadoop fs -get /test1/test1.txt

ls

test1.txt

hadoop fs -ls /test1

Found 2 items

-rw-r--r--   3 root supergroup         40 2018-08-08 10:55 /test1/test1.txt

-rw-r--r--   3 root supergroup         19 2018-08-08 10:40 /test1/test2.txt

步骤12:将hdfs分布式系统下/test2目录下的全部文件,最后删除/test2目录。

hadoop fs -rm /test2/*

Deleted /test2/testtmp.txt

 hadoop fs -rmdir /test2

 hadoop fs -ls /

Found 2 items

drwxr-xr-x   - root supergroup          0 2018-08-08 11:00 /test1

drwxr-xr-x   - root supergroup          0 2018-08-08 10:41 /test3

步骤13:快照的基本操作(较难可选做

具体要求为:HDFS文件系统的根目录下存在一个/test1的文件目录,要求开启该目录的可创建快照功能,并为该目录文件创建快照,快照名称为import-data,使用相关命令查看该快照文件的列表信息。同时删除/test1目录下的文件,并利用快照进行恢复。

hadoop dfsadmin -allowSnapshot /test1     //开启目录的可创建快照功能

DEPRECATED: Use of this script to execute hdfs command is deprecated.

Instead use the hdfs command for it.

Allowing snaphot on /test1 succeeded

hadoop fs -createSnapshot /test1 import-data 

//建立快照

Created snapshot /test1/.snapshot/import-data

hadoop fs -ls /test1/.snapshot    //查看快照文件

Found 1 items

drwxr-xr-x   - root supergroup          0 2018-08-09 01:31 /test1/.snapshot/import-data

 hadoop fs -ls /test1

Found 2 items

-rw-r--r--   3 root supergroup         40 2018-08-08 10:55 /test1/test1.txt

-rw-r--r--   3 root supergroup         19 2018-08-08 10:40 /test1/test2.txt

hadoop fs -rm -r /test1/*.txt   //删除文件

Deleted /test1/test1.txt

Deleted /test1/test2.txt

hadoop fs -ls /test1      // 可以看到文件已经删除

hadoop fs -cp -ptopax /test1/.snapshot/import-data/*.txt /test1                        //恢复快照到/test1目录

hadoop fs -ls /test1

Found 2 items

-rw-r--r--   3 root supergroup         40 2018-08-08 10:55 /test1/test1.txt

-rw-r--r--   3 root supergroup         19 2018-08-08 10:40 /test1/test2.txt

 

 

=====================下面是一些更多的HDFS SHELL命令练习,有兴趣可以练习一下================

 

1.hadoop fs -help  查看帮助

hadoop fs -help

 

2.hadoop fs -mkdir 创建一个文件夹

 hadoop fs -mkdir /test

 

3.  hadoop fs  -put 将本地文件上传到hdfs中

hadoop fs -put 10.txt /test/

 

4   .hadoop fs  -ls 列出路径下的所有文件和文件夹

hadoop fs -ls /test/

 

5.hadoop fs -cat 查看文件中的内容

hadoop fs -cat /test/10.txt

 

6.   hadoop fs -text 列出文件中的内容

 hadoop fs -text /test/10.txt

 

7.    hadoop fs -touchz 创建一个空文件

 hadoop fs -touchz /textFile

 

8.  hadoop fs -ls -R 递归列出路径下的文件夹和文件

hadoop fs  -ls -R /

 

9.  hadoop fs -mv  A   B  将文件从A 移动到 B

hadoop fs  -mv /test/10.txt /test

 

10.hadoop fs -cp A  B 将 A 处的文件 复制一份到 B处

hadoop fs  -cp /test/10.txt /

 

11.hadoop fs  -moveFromLocal A B 将文件从本地A移动到hdfs 系统中B(本地文件会被删除)

hadoop fs -moveFromLocal /home/bigdata/eclipse/testFile/Reduced/C000008/100.txt     /test

 

12.hadoop fs -rm 删除文件

hadoop fs -rm /test/100.txt

 

13.hadoop fs -rmdir 删除文件夹

hadoop fs -rmdir /test/testDir

 

14.hadoop fs -get 将文件从hdfs系统移动到本地

hadoop fs -get /test/testFile /home/

 

==========================下面是一些 HDFS SHELL运维题,有兴趣可以练习一下===================     

1、在本地系统的家目录下新建BigDataSkills.txt文件。在HDFS文件系统的根目录下创建递归目录“hdfs/file”,将BigDataSkills.txt文件,上传到hdfs/file目录中,使用相关命令查看文件系统中hdfs/file目录的文件列表信息

1) hadoop fs -ls /

2) touch BigDataSkills.txt

3) hadoop fs -mkdir  -p /hdfs/file

4) hadoop fs -put BigDataSkills.txt /hdfs/file

5) hadoop fs -ls /hdfs/file

Found 1 items -rw-r--r-- 2 root supergroup 27 2018-08-21 09:08 /hdfs/file/BigDataSkills.txt

 

2、在本地系统的/etc/sysconfig/network-scripts目录下的ifcfg-eno16777736文件上传到/hdfs/file目录中,并使用HDFS文件系统检查工具检查文件是否受损,并检查存储块的副本数

1) hadoop fs -put /etc/sysconfig/network-scripts/ifcfg-eno16777736  /hdfs/file
2) hadoop fs -ls /hdfs/file

Found 2 items

-rw-r--r--   2 root supergroup         27 2018-08-21 09:08 /hdfs/file/BigDataSkills.txt

-rw-r--r--   2 root supergroup        362 2018-08-21 09:12 /hdfs/file/ifcfg-eno16777736

3)hadoop fsck /hdfs/file/ifcfg-eno16777736 -blocks

 

3、向HDFS文件系统上传一大文件(建议超过150MB),查询该文件在HDFS文件系统上分布在那些DataNode上。

1)hadoop fs -put hbase-1.2.0-cdh5.7.0.tar.gz  /

2) hadoop fs -ls /

3)查询该文件在HDFS文件系统上分布在那些DataNode上                 

hadoop fsck /hbase-1.2.0-cdh5.7.0.tar.gz -files -blocks -locations

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值