说明:本博客涉及 HDFS 的常用操作
HDFS文件系统常用操作
HDFS 是 hadoop 的文件系统,不是 Linux 操作系统。所以,操作结果在 Linux 文件系统中都是不可见的。
HDFS
HDFS是hadoop原生态的文件系统,类似window下NTFS
hadoopfs、hadoopdfs与hdfsdfs命令的区别
hadoopfs:通用的文件系统命令,针对任何系统,比如本地文件、HDFS文件、HFTP文件、S3文件系统等。
hadoopdfs:特定针对HDFS的文件系统的相关操作,但是已经不推荐使用。
hdfsdfs:与hadoopdfs类似,同样是针对HDFS文件系统的操作,替代hadoopdfs。
HDFS文件系统常用操作
文件夹操作-创建、查看、删除
hdfsdfs | hadoopfs | |
---|---|---|
先行操作 | 确保在hadoop安装目录下操作$cd/usr/local/java/hadoop/hadoop-2.7.1 $./bin/hdfs dfs | 将hadoop/bin 放入环境变量中$hadoop fs |
创建文件夹 | $./bin/hdfs dfs -mkdir /dir1 | $hadoop -mkdir /dir1 |
创建两级目录 | $./bin/hdfs dfs -mkdir -p /user/hadoop | $hadoop fs -mkdir -p /user/hadoop |
创建文件 | $./bin/hdfs dfs -touchz /dir1/file.txt | $hadoop fs -touchz /dir1/file.txt |
显示文件内容 | 类似于右 | $hadoop fs -cat /dir1/file.txt$ tail方法是将文件尾部1K字节的内容输出,支持-f选项。 $hadoop fs -tail /dir1/file.txt$ |
查看文件大小 | 类似于右 | $hadoop fs -du -s /dir1/file.txt |
将文件输出为文本格式 | 类似于右 | $hadoop fs -text /dir1/file.txt$ |
返回制定目录/文件的统计信息 | 类似于右 | $hadoop fs -stat /dir1/file.txt $hadoop fs -stat %b /dir1/file.txt %b:打印文件大小(目录为0)%n:打印文件名%o:打印blocksize(我们要的值)%r:打印备份数%y:打印UTC日期yyyy-MM-ddHH:mm:ss%Y:打印自1970年1月1日以来的UTC微秒数%F:目录打印directory,文件打印regularfile |
查看HDFS系统文件目录 | $./bin/hdfs dfs-ls . $./bin/hdfs dfs-ls / | $hadoop fs -ls . $hadoop fs-ls/ |
递归查看所有文件 | $./bin/hdfs dfs -ls -R/ | $hadoop fs -ls -R/ |
删除文件夹及其子文件夹(迭代删除) | ./bin/hdfs dfs -rm -r /dir1 | hadoopfs -rm -r /dir1 |
修改文件拥有者 | 类似于右 | $hadoop fs -chown root /dir1 |
为用户赋予权限 | 类似于右 | $hadoop fs -chomd 777 /dir/file.txt 777权限:可读可写可执行 |
清空回收站 | 类似于右 | $hadoop fs -expunge |
进入安全模式 | $hdfs dfsadmin -safemode enter | 同左 |
退出安全模式 | $hdfs dfsadmin -safemode leave | 同左 |
注:要删除HDFS文件系统中的文件夹,要先查看文件夹是否存在,如果存在,其目录下有没有子目录,如果没有子目录,直接删除即可,如果有子目录,则需要采用递归删除的方式才能将该目录删除,否则只能先将其子目录全部删除之后,才能用rm命令将该目录删除掉。
HDFS文件系统中的上传与下载
# 将/dir2/test.txt文件上传到HDFS文件系统/user/hadoop中
$./bin/hdfs dfs -put /dir2/test.txt /user/hadoop
# -put:上传文件;第一个路径是要传的文件的路径;第二个路径是目的地
# 查看文件是否上传成功
$./bin/hdfs dfs -ls /user/hadoop
# 查看HDFS中的文件内容
$./bin/hdfs dfs -cat /user/hadoop/test.txt
# 从HDFS中下载文件至本地(文件夹为英文)
$./bin/hdfs dfs -get /user/hadoop/test.txt /home/hadoop
安全模式:在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。
参考文章:
hadoopfs、hadoopdfs与hdfsdfs命令的区别及hadoopfs命令说明_Shyllin的博客-CSDN博客_fs是什么意思