今天我们来学习下HDFS相关命令的操作
1.操作hdfs 相关的脚本
在hadoop中提供了hadoop和hdfs 两个脚本对hdfs进行操作,这两个脚本都在hadoop/bin/目录下
图片
两个脚本对关键点就是下面这句
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"
hadoop实际上就是运行相关点java代码,通过上面可以看到实际就是在指定运行$CLASS这个变量对应点类 hdfs脚本中,当我们运行hdfs dfs
命令时,实际上是执行以下代码
图片
看到实际执行点类是FsShell这个类
而在hadoop中,当我们运行hadoop fs
命令时,实际上也是运行FsShell这个类
图片
所以本质上hadoop fs命令与hdfs dfs 命令并无区别,这只是hdfs对hadoop更加细化而已
hadoop fs -mkdir /opt
以上命令相当于下面的命令
hdfs dfs -mkdir /opt1
图片
2.hdfs 的文件系统shell操作
hdfs dfs命令即为hdfs shell操作,具体的相关命令可以参看官网地址:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html
其实hdfs很多命令都跟linux中都命令一致,只是在hadoop中,需要加上hadoop fs -前缀,比如:
hadoop fs -cat /opt/aa.txt
上面使用cat命令读取文件内容
2.1 查看帮助
通过hdfs dfs -help可以查看
hdfs dfs -help
图片
可以看到,实际就是hadoop fs命令,所以我们可以用hadoop fs命令
2.2 从本地系统到hdfs文件系统的相关命令
put命令
格式:[-put [-f] [-p] [-l] [-d] ... ]
该命令表示将本地资源,上传到hdfs文件系统中
hadoop fs -put rmdata.sh /opt/
上面命令表示将本地的rmdata.sh文件拷贝到hdfs文件系统中/opt目录下 本地文件:
图片
hdfs 文件系统中/opt目录下:
通过http://hadoop102:50070 下
图片
copyFromLocal命令
格式:[-copyFromLocal [-f] [-p] [-l] [-d] ... ]
该命令与put命令一样,表示从本地拷贝到hdfs文件系统中,一般使用put命令
hadoop fs -copyFromLocal rmdata.sh /opt/
moveFromLocal命令
将本地文件移到hdfs中,本地文件会被删除
hadoop fs -moveFromLocal rmdata.sh /opt/
appendToFile命令
这个命令表示将本地某个文件的内容,追加到hdfs文件系统中指定文件中
hadoop fs -appendToFile bb.txt /opt/aa.txt
可以通过hadoop fs -cat命令查看hdfs 中/opt/aa.txt文件内容
hadoop fs -cat /opt/aa.txt
图片
2.3从hdfs文件系统到本地系统的相关命令
从hdfs到本地系统,则表示拉取文件到本地
get命令
hadoop fs -get /opt/aa.txt /opt/module/
/opt/aa.txt是hdfs中的文件 ,/opt/module是本地的文件目录,表示将hdfs中的aa.txt文件下载到本地系统/opt/module下
copyToLocal命令
这个命令跟get命令一摸一样,也是从hdfs中拉取文件到本地系统
hadoop fs -copyToLocal /opt/aa.txt /opt/module/
2.4hdfs中操作的相关命令
在hdfs文件系统中直接操作的相关命令,其实大部分跟在linux文件系统中操作的相关命令一致,只是hdfs需要使用的是hadoop fs - 前缀
mkdir命令
hadoop fs -mkdir /hadoop1
在hdfs文件系统中的根目录下创建了一个hadoop1目录
ls命令
hadoop fs -ls /
图片
rmdir命令
hadoop fs -rmdir --ignore-fail-on-non-empty /user
rmdir命令删除的是空目录,如果目录不为空则无法删除
rm命令
hadoop fs -rm -r -f /tmp
这个命令跟linux中的rm一样,可以支持文件删除,支持目录删除,强制删除,递归删除
cat命令
hadoop fs -cat /opt/aa.txt
touchz命令
hadoop fs -touchz /abc.txt
创建一个空白文件
tail命令
这个命令跟linu命令一样,用来查看文件末尾内容
hadoop fs -tail -f /opt/rmdata.sh
cp命令
hadoop fs -cp /abc /aa
进行文件的拷贝
mv命令
hadoop fs -mv /abc.txt /opt
du命令
查看目录占用空间
hadoop fs -du /opt
df命令
查看磁盘空间
hadoop fs -df
图片
chmod命令
修改文件或文件夹权限
hadoop fs -chmod 555 /hadoop1
chown命令
修改拥有者权限
hadoop fs -chown root /hadoop1
chgrp命令
修改所属组权限
hadoop fs -chgrp root /hadoop1
fsck命令
检查文件系统是否有损坏
hadoop fsck /data
检查/data目录下是否有文件损坏
hadoop fsck /hbase/data -delete
执行fsck检查,并将损坏的文件删除
最后如果想了解hdfs更多相关的命令可以参考官网地址:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html