Hadoop Shell命令行操作接口的简单操作说明

必须用XShell连接虚拟机Linux,执行以下操作:

1) 执行start-dfs.sh启动HDFS集群

2)执行hadoop fs查看Hadoop Shell帮助信息

3)执行hadoop fs -ls / 查看HDFS分布式系统根目录下当前所有文件和目录信息,再执行hadoop fs -ls -R /递归查看HDFS根目录和所有各级子目录下的全部内容

4)执行hadoop fs -mkdir /test 在HDFS分布式系统根目录下创建test子目录,再执行hadoop fs -ls /  查看一下刚创建的test子目录;
执行hadoop fs -mkdir /test1 在HDFS分布式系统根目录下创建test1子目录,再执行hadoop fs -ls /  查看一下刚创建的test1子目录

5)执行cd切换到/root目录,ls命令查看应该有个word.txt文件,执行hadoop fs -put word.txt /test 把Linux本地文件系统的word.txt文件上传到HDFS的/test目
录,再执行hadoop fs -ls /test或执行hadoop fs -ls -R  / 查看一下刚上传的word.txt文件

6)执行hadoop fs -cat /test/word.txt 或执行hadoop fs -text /test/word.txt 查看HDFS的/test目录下的word.txt文件中的内容

7)执行hadoop fs -touchz /emptyFile  在HDFS的根目录创建一个空文件,再执行hadoop fs -cat /emptyFile查看该空文件应该没有任何内容

8)执行vi new.txt,随便输入内容比如aaaaaaaaaaaaaaaa后保存,再执行hadoop fs -appendToFile new.txt /emptyFile,把Linux本地的文件new.txt的内容追加写
入到HDFS的/emptyFile文件中,再执行hadoop fs -cat /emptyFile查看追加的结果(本步骤可以多次执行查看追加写操作的效果)

9)执行hadoop fs -mv /emptyFile /test 将HDFS上的/emptyFile文件移动到一个存在的/test目录,再执行hadoop fs -ls /test 查看的mptyFile文件是否已经移动到/test目录

10)再执行hadoop fs -mv /test/emptyFile /test/notEmptyFile ,移动到一个不存在的notEmptyFile目录,执行结果是将HDFS上的这个emptyFile文件重命名为notEmptyFile(把一个文件移动到一个不存在的目录,效果相当于给文件重命名)

11)执行hadoop fs -cp /test/notEmptyFile /test1 将HDFS上的/test/notEmptyFile 文件复制到一个存在的/test1目录,再执行hadoop fs -ls /test 查看的notEmptyFile 文件是否已经复制到/test1目录


12)执行hadoop fs -cp /test/notEmptyFile /test2 将HDFS上的/test/notEmptyFile 文件复制到一个不存在的/test2目录,再执行hadoop fs -ls / 查看会发现在HDFS的根目录多了一个test2文件(test2文件是notEmptyFile 文件的拷贝)

13)执行cd切换到/root目录,ls命令查看应该有个word.txt文件,执行命令hadoop fs  -moveFromLocal word.txt /test1将本地文件word.txt移动到HDFS的/test1目录(本地文件word.txt会被删除,ls命令查看没有该文件)

14)执行cd切换到/root目录,执行hadoop fs -get /test/notEmptyFile  /root  将HDFS的文件/test/notEmptyFile下载到本地文件系统/root目录下,执行ls命令查看Linux的/root目录下多了一个notEmptyFile文件

15) 执行hadoop fs -cp /test/word.txt /test1/ 将/test/word.txt 复制到/test1目录,在执行hadoop fs -ls /test1查看新复制的文件word.txt

16)执行hadoop fs -rm /test/* 删除HDFS的/test目录下的全部文件,再执行hadoop fs -rmdir /test删除空的/test目录,最后执行hadoop fs -ls / 查看HDFS根目录下已经没有test目录

17)执行命令hadoop fs -put -p /root /  将本地文件系统的整个/root目录内容全部上传到HDFS的根目录上

18)向HDFS文件系统上传一个较大文件(建议大小超过一个数据块128MB),查询该文件在HDFS文件系统上分布在那些DataNode上

a) 执行cd命令切换到/root目录,执行ls -l命令查看应该有个 hadoop-2.6.0-cdh5.7.0.tar.gz压缩包文件,文件大小大约是297M,再执行 hadoop fs -put hadoop-2.6.0-cdh5.7.0.tar.gz /    将该Hadoop压缩包文件上传到HDFS的根目录

b) 执行 hadoop fs -ls /  查看一下是否HDFS根目录已经上传了文件hadoop-2.6.0-cdh5.7.0.tar.gz

c)执行命令 hadoop fsck /hadoop-2.6.0-cdh5.7.0.tar.gz -files -blocks -locations    查询该文件的数据块上分布在HDFS的哪些DataNode节点上 ,该命令的输出如下:
Connecting to namenode via http://master:50070
FSCK started by root (auth:SIMPLE) from /192.168.56.10 for path /hadoop-2.6.0-cdh5.7.0.tar.gz at Thu Oct 08 16:32:06 CST 2020
/hadoop-2.6.0-cdh5.7.0.tar.gz 311585484 bytes, 3 block(s):  OK
0. BP-659583651-192.168.56.10-1599660205928:blk_1073741826_1002 len=134217728 Live_repl=1 [DatanodeInfoWithStorage[192.168.56.10:50010,DS-0868c06f-0958-49f1-9c4a-35070dcdcff1,DISK]]
1. BP-659583651-192.168.56.10-1599660205928:blk_1073741827_1003 len=134217728 Live_repl=1 [DatanodeInfoWithStorage[192.168.56.10:50010,DS-0868c06f-0958-49f1-9c4a-35070dcdcff1,DISK]]
2. BP-659583651-192.168.56.10-1599660205928:blk_1073741828_1004 len=43150028 Live_repl=1 [DatanodeInfoWithStorage[192.168.56.10:50010,DS-0868c06f-0958-49f1-9c4a-35070dcdcff1,DISK]]

Status: HEALTHY
 Total size:    311585484 B
 Total dirs:    0
 Total files:    1
 Total symlinks:        0
 Total blocks (validated):    3 (avg. block size 103861828 B)
 Minimally replicated blocks:    3 (100.0 %)
 Over-replicated blocks:    0 (0.0 %)
 Under-replicated blocks:    0 (0.0 %)
 Mis-replicated blocks:        0 (0.0 %)
 Default replication factor:    1
 Average block replication:    1.0
 Corrupt blocks:        0
 Missing replicas:        0 (0.0 %)
 Number of data-nodes:        1
 Number of racks:        1
FSCK ended at Thu Oct 08 16:32:06 CST 2020 in 3 milliseconds
The filesystem under path '/hadoop-2.6.0-cdh5.7.0.tar.gz' is HEALTHY

d)cd /root/hdfs/tmp/dfs/data/current/BP-659583651-192.168.56.10-1599660205928/current/finalized/subdir0/subdir0   进入DataNode本地文件系统保存数据块文件的目录, 执行ls -l命令查看三个数据块文件:
-rw-r--r--. 1 root root      1191 9月   9 22:04 blk_1073741825
-rw-r--r--. 1 root root        19 9月   9 22:04 blk_1073741825_1001.meta
-rw-r--r--. 1 root root 134217728 10月  8 16:31 blk_1073741826
-rw-r--r--. 1 root root   1048583 10月  8 16:31 blk_1073741826_1002.meta
-rw-r--r--. 1 root root 134217728 10月  8 16:31 blk_1073741827
-rw-r--r--. 1 root root   1048583 10月  8 16:31 blk_1073741827_1003.meta
-rw-r--r--. 1 root root  43150028 10月  8 16:31 blk_1073741828
-rw-r--r--. 1 root root    337119 10月  8 16:31 blk_1073741828_1004.meta

e)打开http://192.168.56.10:50070/ 进入Utilities,查看HDFS上之前上传的hadoop-2.6.0-cdh5.7.0.tar.gz文件的属性信息,其中显示该文件有几个数据块,如下图所示:


具体解释如下:

311585484Byte(HDFS上的一个大文件大小)%134217728Byte(128M Byte 是一个数据块的大小)=2 余43150028Byte
件)
所以该文件共占了三个数据块,每个数据块都只有一个副本 因为伪分布式 只有一个DataNode
134217728Byte(128M)  
134217728Byte(128M)
43150028Byte

每个数据块都是DataNode这台计算机上的本地操作系统Linux的文件系统XFS上存放的二进制数据文件
blk_1073741826
blk_1073741827
blk_1073741828

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值