一、简介
什么是
HDFS
的
Shell
操作?
很简单,就是在
Linux
的终端,通过命令来操作
HDFS
。
如果,你们学习过
git、docker、k8s
,应该会发现,这些命令的特点和
shell
命令非常相似
二、常用命令
1、准备工作相关命令
启动集群
sbin/start-dfs.sh
sbin/start-yarn.sh
查看命令帮助
hadoop fs -helprm
创建
/sanguo
文件夹
hadoop fs -mkdir /sanguo
2、上传
1、
-moveFromLocal
:从本地
剪切
粘贴到
HDFS
hadoop fs -moveFromLocal ./shuguo.txt /sanguo
2、
-copyFromLocal
:从本地
拷贝
文件到
HDFS
指定路径中
hadoop fs -copyFromLocal ./weiguo.txt /sanguo
3、
-put
:等同于
copyFromLocal
,生产环境更习惯用
put
hadoop fs -put ./wuguo.txt /sanguo
4、
-appendToFile
:追加一个文件中的
内容
到
HDFS
中已经存在的文件末尾
hadoop fs -appendToFile liubei.txt /sanguo/shuguo.txt
注意
此命令可能遇到的错误
解决办法
在
hdfs-site.xml
文件中添加如下配置,重启
Hadoop
集群即可
<property><name>dfs.client.block.write.replace-datanode-on-failure.policy</name><value>NEVER</value></property>
参考:Hadoop的append命令报错的解决办法
3、下载
1、
-copyToLocal
:从
HDFS
拷贝到本地
hadoop fs -copyToLocal /sanguo/shuguo.txt ./
2、
-get
:等同于
copyToLocal
,生产环境更习惯用
get
hadoop fs -get /sanguo/shuguo.txt ./shuguo2.txt
4、文件的常用操作
1、
-ls
: 显示目录信息
hadoop fs -ls /sanguo
2、
-cat
:显示文件内容
hadoop fs -cat /sanguo/shuguo.txt
3、
-chgrp、 -chmod、 -chown
:同
Linux
文件系统中的用法一样,修改文件所属权限
hadoop fs -chmod777 /sanguo/shuguo.txt
4、
-mkdir
:创建路径
hadoop fs -mkdir /jinguo
5、
-cp
:从
HDFS
的一个路径
拷贝
到
HDFS
的另一个路径
hadoop fs -cp /sanguo/shuguo.txt /jinguo
6、
-mv
:在
HDFS
目录中
移动(剪切)
文件
hadoop fs -mv /sanguo/weiguo.txt /jinguo
7、
-tail
:显示一个文件的末尾
1kb
的数据
hadoop fs -tail /jinguo/shuguo.txt
8、
-rm
:删除文件或文件夹
hadoop fs -rm /sanguo/shuguo.txt
9、
-rm -r
递归删除目录及目录里面的文件
hadoop fs -rm-r /sanguo
10、
-du
统计文件夹的大小信息
hadoop fs -du-s-h /jinguo
hadoop fs -du-h /jinguo
说明:
27
表示一个节点上文件大小;
81
表示
27*3
个副本的总大小;
/jinguo
表示查看的目录
11、
-setrep
:设置
HDFS
中文件的副本数量
hadoop fs -setrep10 /jinguo/shuguo.txt
这里设置的副本数只是记录在
NameNode
的
元数据
中,是否真的会有这么多副本,还得看
DataNode
的数量。因为目前只有
3台
设备,最多也就
3个
副本,只有节点数的增加到
10台
时副本数才能达到
10
个,当然,节点数
超过10个
,副本数也只能是
10
个。
三、补充
hadoop fs xxxx
等价与
hdfs dfs xxxx
版权归原作者 生产队队长 所有, 如有侵权,请联系我们删除。