1.块大小
了解一下。
2.HDFS的shell操作(重点)
(1)基本语法
bin/hadoop fs 具体命令
或者
bin/hdfs dfs 具体命令
其中,dfs是fs的实现类
(2)浏览全部命令
查看所有命令:
hdfs dfs
or
hadoop fs
(3)常用命令实操
说明:所有命令都是在集群正常启动的情况下进行。
0)启动集群
102上:sbin/start-dfs.sh;103上:sbin/start-yarn.sh
1)-help+指令 输出这个指令的参数及用法
例如:查看rm这个指令的参数及用法
hadoop fs -help rm
2)-ls+路径 显示目录信息
例如:查看根目录的信息
hadoop fs -ls /
递归查看全部信息
hadoop fs -ls -R /
3)-mkdir+文件夹名称(创建多级目录要加-p) 创建目录
例如:
hadoop fs -mkdir -p /wolf/firstdir
4)-moveFromLoca+路径 :从本地移动到HDFS(剪切)
在桌面上新建一个文本文档:
touch /home/wolf/桌面/test.txt
写入一些测试内容:
vim /home/wolf/桌面/test.txt
上传到HDFS
hadoop fs -moveFromLocal /home/wolf/桌面/test.txt /wolf/firstdir/
桌面上的txt文件已经消失了:
在HDFS中查看:
可以看到,已经将本地的文件上传到了HDFS中。
5)-appendToFile +本地文件名 +HDFS文件名 将本地文件追加到HDFS的文件中去(追加一个文件到已存在文件的末尾)
说明:HDFS只支持追加,不支持修改(至少对于2.7.6是这样的)
同样的,我们创建一个文件并写入一些内容:
touch /home/wolf/桌面/test_append.txt
vim /home/wolf/桌面/test_append.txt
追加到之前上传到HDFS的test.txt文件中:
hadoop fs -appendToFile /home/wolf/桌面/test_append.txt /wolf/firstdir/test.txt
可以看到桌面上的文件并没有消失,说明追加不影响原本的文件。
查看一下HDFS中的test.txt(这里顺便用了-cat,就不单独列出来了):
hadoop fs -cat /wolf/firstdir/test.txt
可以看到,追加成功。
6)-chgrp、-chmod、-chown :修改文件所属权限,跟Linux一样,这里不多赘述
7)-copyFromLocal : 从本地文件系统复制到HDFS中
我们将test_append.txt复制到HDFS中去
hadoop fs -copyFromLocal /home/wolf/桌面/test_append.txt /wolf/firstdir/
复制上传成功。
8)-copyToLocal : 把HDFS上的文件复制到本地
将HDFS上的test.txt复制到本地桌面
hadoop fs -copyToLocal /wolf/firstdir/test.txt /home/wolf/桌面/
9)-cp :把HDFS上的文件复制到HDFS上的另一个路径
把/wolf/firstdir/下的test.txt复制到根目录
hadoop fs -cp /wolf/firstdir/test.txt /
10) -mv :把HDFS上的文件移动到HDFS上的另一个路径,这里就不试了,跟cp一样
11) -get :等同于copyToLocal,把HDFS的文件复制到本地
12) -getmerge :合并下载多个文件
现在桌面没有txt:
hadoop fs -getmerge /wolf/firstdir/* /home/wolf/桌面/couple.txt
13)-put :相当于copyFromLocal
14) -tail :查看一个文件的末尾/动态监控一个文件
15) -rm :删除文件或文件夹
16) -rmdir :删除空文件夹
17) -du :统计文件夹的大小信息
hadoop fs -du -s -h /wolf/firstdir
hadoop fs -du -h /wolf/firstdir
18)-setrep:设置HDFS中文件的副本的数量
hadoop fs -setrep 10 /wolf/firstdir/test.txt
注意:这里只是设置副本数量,是否真的有那么多副本需要根据机器的数量决定,比如目前有三台机器,那么副本数最多为3。
至此,我们基本上搞定了HDFS的shell基本操作,接下来学习的是HDFS客户端的基本操作。