一、基本语法
有2种等效的语法格式分别为:
case1: hadoop fs 具体命令
case2: hdfs dfs 具体命令
实际使用时根据个人喜好自由选择以上任意一种语法格式。
二、命令大全
其有很多命令,但在生产环境中我们经常使用的命令并没有那么多,因此需要时再回头查阅上图中的命令即可。
三、常用命令实操
3.1 准备工作
3.1.1 启动Hadoop集群
在使用shell命令前,一定要确保我们的Hadoop集群处于打开状态。
这里我们把3台服务器各自对应的节点都打开了,为了方便后续测试。
跳转到Web端的HDFS,处于活跃状态。
3.1.2 -help 输出这个命令参数的帮助文档
3.1.3 创建一个测试文件夹/test
3.2 上传
3.2.1 -moveFromLocal: 从本地剪切粘贴到HDFS
首先在本地任意创建一个名为test.txt的文件:
输入指定内容:
查看本地当前路径,test.txt文件已生成:
调用-moveFromLocal命令上传到HDFS端并查看:
此时再返回本地查看当前路径,发现源文件已消失:
因为执行的是剪切操作,所以通过moveFromLocal命令所上传到HDFS端的源文件会被删除!
3.2.2 -copyFromLocal: 从本地文件系统中拷贝文件到HDFS路径去
在本地创建文件并输入内容:
调用-copyFromLocal命令上传到HDFS端并查看:
返回查看本地目录:
注:
moveFromLocal
和copyFromLocal
的唯一区别就是是否删除
了源文件
!
3.2.3 -put: 等同于copyFromLocal,生产中更习惯用put
put命令和copyFromLocal命令有着相同的复制效果,所以我们生产环境中常用put,因为简短
3.2.4 -appendToFile: 追加一个文件到已存在的文件末尾
创建新文件并输入内容:
调用appendToFile命令将新文件内容追加到qinqin.txt里:
查看HDFS端qinqin.txt文件内容已在原有基础上做了追加:
3.3 下载
3.3.1 -copyToLocal: 从HDFS拷贝到本地
比如我们要把HDFS端上的/test目录下的文件下载到本地:
3.3.2 -get: 等同于copyToLocal,生产中常用get
get同样可以实现相应的效果:
3.4 HDFS直接操作
3.4.1 -ls: 显示目录信息
需求:显示HDFS端/mylearn的目录信息:
3.4.2 -cat: 显示文件内容
需求:显示HDFS端/test目录下的baby.txt的文件内容:
3.4.3 -chgrp, -chmod, -chown: Linux文件系统中的用法一样,修改文件所属权限
需求:设置HDFS端/test目录下的baby.txt的文件权限、属主和属组:
3.4.4 -mkdir: 创建路径
需求:创建一个新路径:
3.4.5 -cp: 从HDFS的一个路径拷贝到HDFS的另一个路径
需求:把/test目录下的baby.txt文件拷贝一份到/haha目录下:
3.4.6 -mv: 在HDFS目录中移动文件
需求:把/test目录下的qinqin.txt文件移动到/haha目录下:
3.4.7 -tail: 显示一个文件的末尾1Kb的数据
需求:查看/haha目录下的qinqin.txt末尾数据:
3.4.8 -rm: 删除文件或文件夹
需求:删除/haha目录下的qinqin.txt文件
3.4.9 -rm -r: 递归删除目录及目录里的内容
需求:递归删除/test目录及其中的所有内容
可以看到根目录下已没有该子目录:
3.4.10 -du: 统计文件夹的大小信息
需求:查看/mylearn目录的大小信息和详细文件信息
3.4.11 -setrep: 设置HDFS中文件的副本数量
需求:设置/haha目录下的baby.txt文件的副本数量:
修改前副本数量:
修改后副本数量:文章来源:https://www.toymoban.com/news/detail-753311.html
文章来源地址https://www.toymoban.com/news/detail-753311.html
到了这里,关于Hadoop框架---HDFS的Shell命令操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!