今天我们来学习下HDFS相关命令的操作

1.操作hdfs 相关的脚本

在hadoop中提供了hadoop和hdfs 两个脚本对hdfs进行操作,这两个脚本都在hadoop/bin/目录下



目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_在hdfs文件系统中创建目录连接失败

图片

两个脚本对关键点就是下面这句

exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"

hadoop实际上就是运行相关点java代码,通过上面可以看到实际就是在指定运行$CLASS这个变量对应点类 hdfs脚本中,当我们运行hdfs dfs 命令时,实际上是执行以下代码



目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_文件系统_02

图片

看到实际执行点类是FsShell这个类

而在hadoop中,当我们运行hadoop fs命令时,实际上也是运行FsShell这个类



目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_文件系统_03

图片

所以本质上hadoop fs命令与hdfs dfs 命令并无区别,这只是hdfs对hadoop更加细化而已

hadoop fs -mkdir /opt

以上命令相当于下面的命令

hdfs dfs -mkdir /opt1



目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_文件系统_04

图片

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



目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_hadoop_05

图片

可以看到,实际就是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中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_hadoop_06

图片

hdfs 文件系统中/opt目录下:

通过http://hadoop102:50070  下



目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_文件系统_07

图片

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



目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_在hdfs文件系统中创建目录连接失败_08

图片

2.3从hdfs文件系统到本地系统的相关命令

从hdfs到本地系统,则表示拉取文件到本地

get命令

hadoop fs -get /opt/aa.txt /opt/module/

/opt/aa.txt是hdfs中的文件  ,/opt/module是本地的文件目录,表示将hdfs中的aa.txt文件下载到本地系统/opt/module下

目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_hdfs_09

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目录

目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_在hdfs文件系统中创建目录连接失败_10

ls命令

hadoop fs -ls /



目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_hadoop_11

图片

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



目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_文件系统_12

图片

chmod命令

修改文件或文件夹权限

hadoop fs -chmod 555 /hadoop1

chown命令

修改拥有者权限

hadoop fs -chown root /hadoop1

chgrp命令

修改所属组权限

hadoop fs -chgrp root /hadoop1

fsck命令

检查文件系统是否有损坏

hadoop fsck /data

检查/data目录下是否有文件损坏

目录操作在HDFS中为hadoop用户创建一个用户目实例代码 在hdfs上创建目录时出错_hadoop_13

hadoop fsck /hbase/data -delete

执行fsck检查,并将损坏的文件删除

最后如果想了解hdfs更多相关的命令可以参考官网地址:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html